Merge lp:~3v1n0/compiz/scale-ignore-other-active-win into lp:compiz/0.9.9

Proposed by Marco Trevisan (Treviño)
Status: Merged
Approved by: Brandon Schaefer
Approved revision: 3587
Merged at revision: 3587
Proposed branch: lp:~3v1n0/compiz/scale-ignore-other-active-win
Merge into: lp:compiz/0.9.9
Diff against target: 31 lines (+18/-3)
1 file modified
plugins/scale/src/scale.cpp (+18/-3)
To merge this branch: bzr merge lp:~3v1n0/compiz/scale-ignore-other-active-win
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Brandon Schaefer (community) Approve
Review via email: mp+145516@code.launchpad.net

Commit message

Scale: don't set the active window if it is not in the scale group

Description of the change

When we scale a window group, we should ignore an active window that is not currently scaled when setting the currently active/hovered windows or clients will get wrong infos.

This fixes the "gost glow" issue in unity.

To post a comment you must log in.
Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

Looks good to me, works.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'plugins/scale/src/scale.cpp'
--- plugins/scale/src/scale.cpp 2012-12-04 13:16:26 +0000
+++ plugins/scale/src/scale.cpp 2013-01-29 23:24:23 +0000
@@ -1214,9 +1214,24 @@
1214 if (!lastActiveNum)1214 if (!lastActiveNum)
1215 lastActiveNum = screen->activeNum () - 1;1215 lastActiveNum = screen->activeNum () - 1;
12161216
1217 previousActiveWindow = screen->activeWindow ();1217 Window active_window = screen->activeWindow ();
1218 lastActiveWindow = screen->activeWindow ();1218 bool found_active = false;
1219 selectedWindow = screen->activeWindow ();1219
1220 foreach (ScaleWindow *sw, windows)
1221 {
1222 if (sw->window->id() == active_window)
1223 {
1224 found_active = true;
1225 break;
1226 }
1227 }
1228
1229 if (!found_active)
1230 active_window = None;
1231
1232 previousActiveWindow = active_window;
1233 lastActiveWindow = active_window;
1234 selectedWindow = active_window;
1220 hoveredWindow = None;1235 hoveredWindow = None;
12211236
1222 this->state = ScaleScreen::Out;1237 this->state = ScaleScreen::Out;

Subscribers

People subscribed via source and target branches