Merge lp:~om26er/ubuntu/oneiric/compiz/compiz-sru into lp:ubuntu/oneiric-proposed/compiz
- Oneiric (11.10)
- compiz-sru
- Merge into oneiric-proposed
Status: | Merged |
---|---|
Merge reported by: | Stéphane Graber |
Merged at revision: | not available |
Proposed branch: | lp:~om26er/ubuntu/oneiric/compiz/compiz-sru |
Merge into: | lp:ubuntu/oneiric-proposed/compiz |
Diff against target: |
308 lines (+278/-0) 5 files modified
debian/changelog (+13/-0) debian/patches/fix_890947_synthetic_notifications.patch (+43/-0) debian/patches/fix_focus_on_wrong_window_896762.patch (+20/-0) debian/patches/java_offset_frame_extents_878934.patch (+199/-0) debian/patches/series (+3/-0) |
To merge this branch: | bzr merge lp:~om26er/ubuntu/oneiric/compiz/compiz-sru |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stéphane Graber | Approve | ||
Review via email: mp+85928@code.launchpad.net |
Commit message
Description of the change
fix linked bugs
Omer Akram (om26er) wrote : | # |
Miklos Juhasz (mjuhasz) wrote : | # |
I tried the compiz 6.1 package and compiz hangs when I
1) place a window using the grid plugin, e.g. Ctrl+Alt+1, then
2) I press the maximize button
Rebuilding the deb without the uwd_frame_
- 256. By Omer Akram
-
remove the bad patch
- 257. By Omer Akram
-
fix
Omer Akram (om26er) wrote : | # |
I removed that patch, so that we could get sponsored what works.
Stéphane Graber (stgraber) wrote : | # |
The diff looks good but I'm not too familiar with compiz, so would appreciate it if someone with compiz knowledge could have a look and sponsor or ask me to upload.
Thanks
Stéphane Graber (stgraber) wrote : | # |
Uploaded.
20:06 < stgraber> om26er: have these changes be pushed to Precise?
20:06 < seb128> stgraber, the compiz SRU is fine yes, we have it in the ubuntu-desktop ppa since before holidays
20:07 < stgraber> om26er: I just had a quick look and can't find any matching patches or changes in Precise
20:07 < stgraber> seb128: maybe you can answer that question? ^
20:07 < seb128> stgraber, don't bother about precise, a new compiz release is due there but is taking some time due to the testing etc
20:07 < seb128> stgraber, it will land in the next week or so
20:08 < stgraber> k, as long as I can blame you if someone ask why I uploaded something to proposed without first uploading to Precise, I'm fine :)
Omer Akram (om26er) wrote : | # |
why is it still not merged?
Stéphane Graber (stgraber) wrote : | # |
Someone from the SRU team needs to let it through the -proposed unapproved queue.
https:/
Preview Diff
1 | === modified file 'debian/changelog' |
2 | --- debian/changelog 2011-10-20 14:23:52 +0000 |
3 | +++ debian/changelog 2012-01-17 19:23:25 +0000 |
4 | @@ -1,3 +1,16 @@ |
5 | +compiz (1:0.9.6+bzr20110929-0ubuntu6.1) oneiric-proposed; urgency=low |
6 | + |
7 | + * debian/patches/fix_890947_synthetic_notifications.patch: |
8 | + - Unity sends initial GDK_CONFIGURE event with position as (0,0). |
9 | + (LP: #890947) |
10 | + * debian/patches/fix_focus_on_wrong_window_896762.patch: |
11 | + - Switching viewports with ctrl-alt-(left/right/up/down) does not |
12 | + give the highest window on the target viewport focus. (LP: #896762) |
13 | + * debian/patches/java_offset_frame_extents_878934.patch: |
14 | + - Menu selection is wrong in Java apps. (LP: #878934) |
15 | + |
16 | + -- Omer Akram <om26er@ubuntu.com> Thu, 15 Dec 2011 23:19:22 +0500 |
17 | + |
18 | compiz (1:0.9.6+bzr20110929-0ubuntu6) oneiric-proposed; urgency=low |
19 | |
20 | * debian/patches/rev_2821_fix_807487.patch: |
21 | |
22 | === added file 'debian/patches/fix_890947_synthetic_notifications.patch' |
23 | --- debian/patches/fix_890947_synthetic_notifications.patch 1970-01-01 00:00:00 +0000 |
24 | +++ debian/patches/fix_890947_synthetic_notifications.patch 2012-01-17 19:23:25 +0000 |
25 | @@ -0,0 +1,43 @@ |
26 | +=== modified file 'src/window.cpp' |
27 | +Index: compiz-0.9.6+bzr20110929/src/window.cpp |
28 | +=================================================================== |
29 | +--- compiz-0.9.6+bzr20110929.orig/src/window.cpp 2011-12-15 22:47:14.514361587 +0800 |
30 | ++++ compiz-0.9.6+bzr20110929/src/window.cpp 2011-12-15 22:47:53.314553987 +0800 |
31 | +@@ -1504,7 +1504,7 @@ |
32 | + XConfigureEvent xev; |
33 | + XWindowAttributes attrib; |
34 | + unsigned int nchildren; |
35 | +- Window rootRet, parentRet; |
36 | ++ Window rootRet, parentRet = 0; |
37 | + Window *children; |
38 | + |
39 | + xev.type = ConfigureNotify; |
40 | +@@ -1526,25 +1526,9 @@ |
41 | + xev.border_width = attrib.border_width; |
42 | + xev.above = None; |
43 | + |
44 | +- if (priv->frame) |
45 | +- { |
46 | +- XWindowAttributes fAttrib; |
47 | +- XWindowAttributes wAttrib; |
48 | +- |
49 | +- /* Add offset between wrapper and client */ |
50 | +- if (XGetWindowAttributes (screen->dpy (), priv->wrapper, &wAttrib)) |
51 | +- { |
52 | +- xev.x += wAttrib.x; |
53 | +- xev.y += wAttrib.y; |
54 | +- } |
55 | +- |
56 | +- /* Add offset between frame and client */ |
57 | +- if (XGetWindowAttributes (screen->dpy (), priv->frame, &fAttrib)) |
58 | +- { |
59 | +- xev.x += fAttrib.x; |
60 | +- xev.y += fAttrib.y; |
61 | +- } |
62 | +- } |
63 | ++ /* Translate co-ordinates to root space */ |
64 | ++ XTranslateCoordinates (screen->dpy (), priv->id, screen->root (), 0, 0, |
65 | ++ &xev.x, &xev.y, &parentRet); |
66 | + |
67 | + /* We need to ensure that the stacking order is |
68 | + * based on the current server stacking order so |
69 | |
70 | === added file 'debian/patches/fix_focus_on_wrong_window_896762.patch' |
71 | --- debian/patches/fix_focus_on_wrong_window_896762.patch 1970-01-01 00:00:00 +0000 |
72 | +++ debian/patches/fix_focus_on_wrong_window_896762.patch 2012-01-17 19:23:25 +0000 |
73 | @@ -0,0 +1,20 @@ |
74 | +=== modified file 'src/window.cpp' |
75 | +Index: compiz-0.9.6+bzr20110929/src/window.cpp |
76 | +=================================================================== |
77 | +--- compiz-0.9.6+bzr20110929.orig/src/window.cpp 2011-12-15 22:47:02.906304014 +0800 |
78 | ++++ compiz-0.9.6+bzr20110929/src/window.cpp 2011-12-15 22:47:08.334330942 +0800 |
79 | +@@ -2535,10 +2535,10 @@ |
80 | + if (!priv->shaded && (priv->state & CompWindowStateHiddenMask)) |
81 | + return false; |
82 | + |
83 | +- if (priv->geometry.x () + priv->width <= 0 || |
84 | +- priv->geometry.y () + priv->height <= 0 || |
85 | +- priv->geometry.x () >= (int) screen->width ()|| |
86 | +- priv->geometry.y () >= (int) screen->height ()) |
87 | ++ if (priv->serverGeometry.x () + priv->serverGeometry.width () <= 0 || |
88 | ++ priv->serverGeometry.y () + priv->serverGeometry.height () <= 0 || |
89 | ++ priv->serverGeometry.x () >= (int) screen->width ()|| |
90 | ++ priv->serverGeometry.y () >= (int) screen->height ()) |
91 | + return false; |
92 | + |
93 | + return true; |
94 | |
95 | === added file 'debian/patches/java_offset_frame_extents_878934.patch' |
96 | --- debian/patches/java_offset_frame_extents_878934.patch 1970-01-01 00:00:00 +0000 |
97 | +++ debian/patches/java_offset_frame_extents_878934.patch 2012-01-17 19:23:25 +0000 |
98 | @@ -0,0 +1,199 @@ |
99 | +=== modified file 'plugins/decor/src/decor.cpp' |
100 | +Index: compiz-0.9.6+bzr20110929/plugins/decor/src/decor.cpp |
101 | +=================================================================== |
102 | +--- compiz-0.9.6+bzr20110929.orig/plugins/decor/src/decor.cpp 2011-12-15 22:47:02.878303874 +0800 |
103 | ++++ compiz-0.9.6+bzr20110929/plugins/decor/src/decor.cpp 2011-12-15 22:47:14.510361578 +0800 |
104 | +@@ -825,6 +825,7 @@ |
105 | + { |
106 | + Decoration *old, *decoration = NULL; |
107 | + bool decorate = false; |
108 | ++ bool shadowOnly = true; |
109 | + int moveDx, moveDy; |
110 | + int oldShiftX = 0; |
111 | + int oldShiftY = 0; |
112 | +@@ -849,34 +850,36 @@ |
113 | + case CompWindowTypeMenuMask: |
114 | + case CompWindowTypeNormalMask: |
115 | + if (window->mwmDecor () & (MwmDecorAll | MwmDecorTitle)) |
116 | +- decorate = (window->frame () || |
117 | +- window->hasUnmapReference ()) ? true : false; |
118 | ++ shadowOnly = false; |
119 | + default: |
120 | + break; |
121 | + } |
122 | + |
123 | + if (window->overrideRedirect ()) |
124 | +- decorate = false; |
125 | ++ shadowOnly = true; |
126 | + |
127 | + if (window->wmType () & (CompWindowTypeDockMask | CompWindowTypeDesktopMask)) |
128 | +- decorate = false; |
129 | ++ shadowOnly = true; |
130 | + |
131 | +- if (decorate) |
132 | ++ if (!shadowOnly) |
133 | + { |
134 | + if (!dScreen->optionGetDecorationMatch ().evaluate (window)) |
135 | +- decorate = false; |
136 | ++ shadowOnly = true; |
137 | + } |
138 | + } |
139 | + else |
140 | +- decorate = true; |
141 | ++ shadowOnly = false; |
142 | ++ |
143 | ++ decorate = ((window->frame () || |
144 | ++ window->hasUnmapReference ()) && !shadowOnly) || |
145 | ++ isSwitcher; |
146 | + |
147 | +- if (decorate) |
148 | ++ if (decorate || frameExtentsRequested) |
149 | + { |
150 | + if (decor && checkSize (decor)) |
151 | + decoration = decor; |
152 | + else |
153 | + { |
154 | +- |
155 | + if (dScreen->dmSupports & WINDOW_DECORATION_TYPE_PIXMAP && |
156 | + dScreen->cmActive && |
157 | + !(dScreen->dmSupports & WINDOW_DECORATION_TYPE_WINDOW && |
158 | +@@ -890,6 +893,11 @@ |
159 | + else if (dScreen->dmSupports & WINDOW_DECORATION_TYPE_WINDOW) |
160 | + decoration = &dScreen->windowDefault; |
161 | + } |
162 | ++ |
163 | ++ /* Do not allow windows which are later undecorated |
164 | ++ * to have a set _NET_FRAME_EXTENTS */ |
165 | ++ if (decorate) |
166 | ++ frameExtentsRequested = false; |
167 | + } |
168 | + else |
169 | + { |
170 | +@@ -944,7 +952,8 @@ |
171 | + moveDx = shiftX () - oldShiftX; |
172 | + moveDy = shiftY () - oldShiftY; |
173 | + |
174 | +- updateFrame (); |
175 | ++ if (decorate) |
176 | ++ updateFrame (); |
177 | + window->updateWindowOutputExtents (); |
178 | + if (dScreen->cmActive) |
179 | + cWindow->damageOutputExtents (); |
180 | +@@ -955,7 +964,8 @@ |
181 | + CompWindowExtents emptyExtents; |
182 | + wd = NULL; |
183 | + |
184 | +- updateFrame (); |
185 | ++ if (decorate) |
186 | ++ updateFrame (); |
187 | + |
188 | + memset (&emptyExtents, 0, sizeof (CompWindowExtents)); |
189 | + |
190 | +@@ -1385,6 +1395,8 @@ |
191 | + |
192 | + this->dmSupports = dmSupports; |
193 | + |
194 | ++ screen->updateSupportedWmHints (); |
195 | ++ |
196 | + if (dmWin) |
197 | + { |
198 | + for (i = 0; i < DECOR_NUM; i++) |
199 | +@@ -2047,7 +2059,10 @@ |
200 | + { |
201 | + screen->addSupportedAtoms (atoms); |
202 | + |
203 | +- atoms.push_back (requestFrameExtentsAtom); |
204 | ++ /* Don't support _NET_REQUEST_FRAME_EXTENTS |
205 | ++ * where there is no decorator running yet */ |
206 | ++ if (dmWin) |
207 | ++ atoms.push_back (requestFrameExtentsAtom); |
208 | + } |
209 | + |
210 | + bool |
211 | +@@ -2155,7 +2170,8 @@ |
212 | + updateReg (true), |
213 | + unshading (false), |
214 | + shading (false), |
215 | +- isSwitcher (false) |
216 | ++ isSwitcher (false), |
217 | ++ frameExtentsRequested (false) |
218 | + { |
219 | + WindowInterface::setHandler (window); |
220 | + |
221 | +Index: compiz-0.9.6+bzr20110929/plugins/decor/src/decor.h |
222 | +=================================================================== |
223 | +--- compiz-0.9.6+bzr20110929.orig/plugins/decor/src/decor.h 2011-09-29 14:53:38.000000000 +0800 |
224 | ++++ compiz-0.9.6+bzr20110929/plugins/decor/src/decor.h 2011-12-15 22:47:14.510361578 +0800 |
225 | +@@ -242,6 +242,8 @@ |
226 | + bool unshading; |
227 | + bool shading; |
228 | + bool isSwitcher; |
229 | ++ |
230 | ++ bool frameExtentsRequested; |
231 | + }; |
232 | + |
233 | + class DecorPluginVTable : |
234 | +Index: compiz-0.9.6+bzr20110929/src/window.cpp |
235 | +=================================================================== |
236 | +--- compiz-0.9.6+bzr20110929.orig/src/window.cpp 2011-12-15 22:47:08.334330942 +0800 |
237 | ++++ compiz-0.9.6+bzr20110929/src/window.cpp 2011-12-15 22:47:14.514361587 +0800 |
238 | +@@ -6832,31 +6832,42 @@ |
239 | + priv->border.top != b->top || |
240 | + priv->border.bottom != b->bottom) |
241 | + { |
242 | +- unsigned long data[4]; |
243 | +- |
244 | + priv->serverInput = *i; |
245 | + priv->border = *b; |
246 | + |
247 | + recalcActions (); |
248 | + |
249 | +- /* Use b for _NET_WM_FRAME_EXTENTS here because |
250 | +- * that is the representation of the actual decoration |
251 | +- * around the window that the user sees and should |
252 | +- * be used for placement and such */ |
253 | +- |
254 | +- data[0] = b->left; |
255 | +- data[1] = b->right; |
256 | +- data[2] = b->top; |
257 | +- data[3] = b->bottom; |
258 | +- |
259 | +- XChangeProperty (screen->dpy (), priv->id, |
260 | +- Atoms::frameExtents, |
261 | +- XA_CARDINAL, 32, PropModeReplace, |
262 | +- (unsigned char *) data, 4); |
263 | +- |
264 | + priv->updateSize (); |
265 | + priv->updateFrameWindow (); |
266 | + } |
267 | ++ |
268 | ++ /* Use b for _NET_WM_FRAME_EXTENTS here because |
269 | ++ * that is the representation of the actual decoration |
270 | ++ * around the window that the user sees and should |
271 | ++ * be used for placement and such */ |
272 | ++ |
273 | ++ /* Also update frame extents regardless of whether or not |
274 | ++ * the frame extents actually changed, eg, a plugin could |
275 | ++ * suggest that a window has no frame extents and that it |
276 | ++ * might later get frame extents - this is mandatory if we |
277 | ++ * say that we support it, so set them |
278 | ++ * additionaly some applications might request frame extents |
279 | ++ * and we must respond by setting the property - ideally |
280 | ++ * this should only ever be done when some plugin actually |
281 | ++ * need to change the frame extents or the applications |
282 | ++ * requested it */ |
283 | ++ |
284 | ++ unsigned long data[4]; |
285 | ++ |
286 | ++ data[0] = b->left; |
287 | ++ data[1] = b->right; |
288 | ++ data[2] = b->top; |
289 | ++ data[3] = b->bottom; |
290 | ++ |
291 | ++ XChangeProperty (screen->dpy (), priv->id, |
292 | ++ Atoms::frameExtents, |
293 | ++ XA_CARDINAL, 32, PropModeReplace, |
294 | ++ (unsigned char *) data, 4); |
295 | + } |
296 | + |
297 | + bool |
298 | |
299 | === modified file 'debian/patches/series' |
300 | --- debian/patches/series 2011-10-20 14:23:52 +0000 |
301 | +++ debian/patches/series 2012-01-17 19:23:25 +0000 |
302 | @@ -18,3 +18,6 @@ |
303 | rev_2884_fix_874004.patch |
304 | rev_2890_fix_879253.patch |
305 | fix-886978.patch |
306 | +fix_890947_synthetic_notifications.patch |
307 | +fix_focus_on_wrong_window_896762.patch |
308 | +java_offset_frame_extents_878934.patch |
builds fine on: /launchpad. net/~om26er/ +archive/ test/+build/ 3013234 /launchpad. net/~om26er/ +archive/ test/+build/ 3013233
32-bit https:/
64-bit https:/