Merge lp:~unity-team/compiz/trunk.fix_727143 into lp:~unity-team/compiz/trunk

Proposed by Sam Spilsbury
Status: Merged
Merged at revision: 2758
Proposed branch: lp:~unity-team/compiz/trunk.fix_727143
Merge into: lp:~unity-team/compiz/trunk
Diff against target: 44 lines (+20/-2)
2 files modified
unity/unity_window_decorator/src/events.c (+15/-0)
unity/unity_window_decorator/src/wnck.c (+5/-2)
To merge this branch: bzr merge lp:~unity-team/compiz/trunk.fix_727143
Reviewer Review Type Date Requested Status
Jason Smith (community) Approve
Review via email: mp+65668@code.launchpad.net

Description of the change

(Hopefully this merge proposal won't screw up like the other ones)

Fixes LP#727143 There's a condition that can happen that isn't ICCCM compliant.

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

+1 approved

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'unity/unity_window_decorator/src/events.c'
2--- unity/unity_window_decorator/src/events.c 2011-04-07 12:37:53 +0000
3+++ unity/unity_window_decorator/src/events.c 2011-06-23 13:37:50 +0000
4@@ -1018,7 +1018,22 @@
5 {
6 if (g_slist_find (d->transient_windows, win))
7 break;
8+
9 d->transient_windows = g_slist_append (d->transient_windows, win);
10+
11+ /* hint could have changed, so check the old
12+ * transient parent if set and remove this
13+ * from the transient parents list */
14+
15+ if (d_transient->transient_parent &&
16+ d_transient->transient_parent != p)
17+ {
18+ decor_t *d_old_parent = g_object_get_data (G_OBJECT (d_transient->transient_parent), "decor");
19+
20+ d_old_parent->transient_windows = g_slist_remove (d_old_parent->transient_windows, win);
21+ d_transient->transient_parent = NULL;
22+ }
23+
24 d_transient->transient_parent = p;
25 }
26 }
27
28=== modified file 'unity/unity_window_decorator/src/wnck.c'
29--- unity/unity_window_decorator/src/wnck.c 2011-04-05 20:40:04 +0000
30+++ unity/unity_window_decorator/src/wnck.c 2011-06-23 13:37:50 +0000
31@@ -700,8 +700,11 @@
32
33 if (d)
34 {
35- d->transient_windows = g_slist_append (d->transient_windows, win);
36- d_transient->transient_parent = p;
37+ if (!g_slist_find (d->transient_windows, win))
38+ {
39+ d->transient_windows = g_slist_append (d->transient_windows, win);
40+ d_transient->transient_parent = p;
41+ }
42 }
43 }
44 }

Subscribers

People subscribed via source and target branches

to all changes: