Merge lp:~smspillaz/unity/unity.workaround_977189 into lp:unity

Proposed by Sam Spilsbury
Status: Merged
Approved by: Didier Roche-Tolomelli
Approved revision: no longer in the source branch.
Merged at revision: 2273
Proposed branch: lp:~smspillaz/unity/unity.workaround_977189
Merge into: lp:unity
Diff against target: 32 lines (+16/-0)
2 files modified
manual-tests/NvMinimizedWindows.txt (+11/-0)
plugins/unityshell/src/compizminimizedwindowhandler.h (+5/-0)
To merge this branch: bzr merge lp:~smspillaz/unity/unity.workaround_977189
Reviewer Review Type Date Requested Status
Michal Hruby (community) Approve
Didier Roche-Tolomelli Approve
Review via email: mp+101561@code.launchpad.net

Commit message

Hack around the nvidia driver losing window pixmaps when minimizing windows. See LP #977189

Description of the change

== Problem ==

See bug 977189 - the nvidia driver loses the pixmaps of windows that are minimized (input shape changes perhaps ?)

== Solution ==

Hack around it - force a rebind of those windows whenever the minimize animation has completed.

== Tests ==

Manual test included

UNBLOCK

To post a comment you must log in.
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

ugly hacks ftw! mhr3 and I confirm it fixes this really ugly bug on nvidia (which is on the priority list). So approving.

review: Approve
Revision history for this message
Michal Hruby (mhr3) wrote :

Indeed...

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'manual-tests/NvMinimizedWindows.txt'
2--- manual-tests/NvMinimizedWindows.txt 1970-01-01 00:00:00 +0000
3+++ manual-tests/NvMinimizedWindows.txt 2012-04-11 14:21:27 +0000
4@@ -0,0 +1,11 @@
5+Nvidia white windows in spread
6+----------
7+This test ensures that windows are not white in the spread using nvidia.
8+
9+#. Ensure unity is running on a machine with a nvidia GPU using the nvidia driver
10+#. Open two windows of the same app
11+#. Minimize one
12+#. Click the launcher icon to activate the spread
13+
14+Outcome:
15+ The contents of both windows should be visible.
16
17=== modified file 'plugins/unityshell/src/compizminimizedwindowhandler.h'
18--- plugins/unityshell/src/compizminimizedwindowhandler.h 2012-03-14 06:24:18 +0000
19+++ plugins/unityshell/src/compizminimizedwindowhandler.h 2012-04-11 14:21:27 +0000
20@@ -298,7 +298,12 @@
21 if (CompOption::getBoolOptionNamed (o, "active", false))
22 minimizingWindows.push_back (w);
23 else
24+ {
25+ /* Ugly hack for LP#977189 */
26+ CompositeWindow::get (w)->release ();
27+ GLWindow::get (w)->release ();
28 minimizingWindows.remove (w);
29+ }
30 }
31 }
32 }