Merge lp://staging/~3v1n0/unity/panelmenu-fixes into lp://staging/unity

Proposed by Marco Trevisan (Treviño)
Status: Merged
Merged at revision: 1617
Proposed branch: lp://staging/~3v1n0/unity/panelmenu-fixes
Merge into: lp://staging/unity
Diff against target: 1499 lines (+470/-231)
12 files modified
plugins/unityshell/src/PanelIndicatorsView.cpp (+55/-41)
plugins/unityshell/src/PanelIndicatorsView.h (+13/-1)
plugins/unityshell/src/PanelMenuView.cpp (+146/-86)
plugins/unityshell/src/PanelMenuView.h (+9/-7)
plugins/unityshell/src/PanelTitlebarGrabAreaView.cpp (+35/-33)
plugins/unityshell/src/PanelTitlebarGrabAreaView.h (+11/-10)
plugins/unityshell/src/PanelView.cpp (+20/-9)
plugins/unityshell/src/PanelView.h (+3/-0)
plugins/unityshell/src/PluginAdapter.cpp (+33/-1)
plugins/unityshell/src/WindowButtons.cpp (+14/-2)
plugins/unityshell/src/WindowManager.cpp (+5/-1)
services/panel-service.c (+126/-40)
To merge this branch: bzr merge lp://staging/~3v1n0/unity/panelmenu-fixes
Reviewer Review Type Date Requested Status
Neil J. Patel (community) Approve
Jason Smith (community) Approve
Gord Allott (community) Approve
Review via email: mp+76133@code.staging.launchpad.net

Description of the change

Fixed lots of other PanelMenuView related bugs (see the linked list of "In Progress bugs" for reference).

In particular, I've also changed these things:
 - Moving to nux::GetGraphicsDisplay()->GetMouseScreenCoord() (instead of gdk functions,
   warning this needs nux bzr-453 or newer not to crash, thanks to Jay for fixing!)
 - Checking for mouse position after closing menus to hide/show them (bug bug #843670)
 - Checking for mouse position after dragging a window to to hide/show menus
 - Fix for PluginAdapter not to consider unmapped windows as maximized (bug #781215)
 - Panel-service: correctly close menus when releasing mouse outside a menu title (bug #844309)
 - Panel-service: cache the indicator entries geometry and use the values for checking mouse position
 - Don't redecorate windows on maximization drag (bug #838923)
 - panel-service: Remove id2entry_hash and use sscanf to parse the entries IDs
 - PanelView: track mouse position only when it has been changed (fix bug #834065)
 - PanelMenuView / PanelIndicatorsView: remove code duplication for adding an entry
 - Better mouse grab management using only PanelTitleGrabArea
 - PanelMenuView: even more checks to avoid to show/hide menus when we shouldn't
 - PanelView: sync geometries for real

See the related commit logs for more informations.

This branch, to work properly, needs the updated UnityCore code that I've pushed in my lp:~3v1n0/unity/menus-switching-hacks branch (for the entries geometry things), so in the case that the other branch isn't accepted, we need to port its UnityCore changes here.

PS: for the record, this is the previous merge request for this branch: https://code.launchpad.net/~3v1n0/unity/panelmenu-fixes/+merge/73622

To post a comment you must log in.
Revision history for this message
Jason Smith (jassmith) wrote :

Has a merge conflict if you merge your other branch in first. Conflicts are non-trivial (at least for me to fix)

review: Needs Fixing
Revision history for this message
Gord Allott (gordallott) wrote :

looks okay from here +1

review: Approve
Revision history for this message
Jason Smith (jassmith) wrote :

Switching to approved

review: Approve
Revision history for this message
Neil J. Patel (njpatel) wrote :

Excellent work Marco, approved.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.