Merge lp:~townsend/compiz/0.9.11.1 into lp:compiz/0.9.11

Proposed by Christopher Townsend
Status: Merged
Approved by: Stephen M. Webb
Approved revision: 3877
Merged at revision: 3861
Proposed branch: lp:~townsend/compiz/0.9.11.1
Merge into: lp:compiz/0.9.11
Diff against target: 358 lines (+106/-19)
13 files modified
compizconfig/gsettings/src/gsettings.c (+9/-3)
compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c (+0/-2)
debian/changelog (+26/-0)
plugins/place/src/place.cpp (+2/-0)
plugins/place/src/screen-size-change/include/screen-size-change.h (+2/-0)
plugins/place/src/screen-size-change/src/screen-size-change.cpp (+6/-3)
plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp (+7/-0)
plugins/resize/src/logic/include/resize-logic.h (+3/-0)
plugins/resize/src/logic/src/resize-logic.cpp (+20/-5)
src/event.cpp (+2/-0)
src/screen.cpp (+2/-3)
src/window.cpp (+26/-3)
src/window/extents/src/windowextents.cpp (+1/-0)
To merge this branch: bzr merge lp:~townsend/compiz/0.9.11.1
Reviewer Review Type Date Requested Status
Stephen M. Webb Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+222856@code.launchpad.net

Commit message

Micro-release 0.9.11.1 for 14.04 Compiz SRU1

Description of the change

Micro-release 0.9.11.1 for 14.04 Compiz SRU1 containing the following fixes:

Bug #347390: Compiz can't resize a window vertically AND horizontally with keyboard.
Bug #1063617: 1:0.9.8+bzr3319-0ubuntu1 regression: keeps setting gsettings keys to wrong values
Bug #1087090: [raring][regression] Window management - Maximized windows aren't fullscreen in the workspace switcher
Bug #1303462: [Regression] Window titlebars placed behind panel
Bug #1304531: Removing an external monitor will move a maximized window to the current workspace
Bug #1305586: Lock screen is unusable when some windows have a keyboard/mouse grab
Bug #1311303: Compiz mouse functions mapped to horizontal scrolling buttons do not work
Bug #1311788: compiz lower window:<Alt>Button5 stops working

To post a comment you must log in.
Revision history for this message
Stephen M. Webb (bregma) wrote :

I think the debian/changelog should have version 0.9.11.1-0ubuntu1 instead of 0.9.11+14.04.20140423-0ubuntu2

lp:~townsend/compiz/0.9.11.1 updated
3877. By Christopher Townsend

Bump changelog to version 1:0.9.11.1-0ubuntu1

Revision history for this message
Christopher Townsend (townsend) wrote :

Ok, I changed the version.

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
Stephen M. Webb (bregma) wrote :

Ready for integration.

review: Approve
lp:~townsend/compiz/0.9.11.1 updated
3878. By Christopher Townsend

Revert rev. 3861 as this causes a regression when scrolling unfocused Gtk windows when either NumLock is off or Caps Lock is on.

3879. By Christopher Townsend

Remove changelog entry for #1311788 as this fix is reverted.

3880. By Christopher Townsend

Revert change for fixing the maximized windows gap when in Expo mode since it introduces a painting regression when moving maximized windows between workspaces.

3881. By Christopher Townsend

Revert changelog version back to the 0.9.11 version since we are going to be bumping the Compiz version in a separate merge proposal.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'compizconfig/gsettings/src/gsettings.c'
2--- compizconfig/gsettings/src/gsettings.c 2013-02-20 14:05:36 +0000
3+++ compizconfig/gsettings/src/gsettings.c 2014-06-30 20:29:46 +0000
4@@ -423,13 +423,19 @@
5 static void
6 updateSetting (CCSBackend *backend, CCSContext *context, CCSPlugin *plugin, CCSSetting *setting)
7 {
8+ Bool status;
9 CCSIntegratedSetting *integrated = ccsGSettingsBackendGetIntegratedSetting (backend, setting);
10
11- ccsBackendReadInit (backend, context);
12- if (!readOption (backend, setting))
13+ if (ccsGetIntegrationEnabled (context) &&
14+ integrated)
15 {
16+ status = readIntegratedOption (backend, setting, integrated);
17+ }
18+ else
19+ status = readOption (backend, setting);
20+
21+ if (!status)
22 ccsResetToDefault (setting, TRUE);
23- }
24
25 if (ccsGetIntegrationEnabled (context) &&
26 integrated)
27
28=== modified file 'compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c'
29--- compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c 2014-03-04 20:00:28 +0000
30+++ compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c 2014-06-30 20:29:46 +0000
31@@ -244,8 +244,6 @@
32 /* g_settings_set_value consumes the reference */
33 if (newVariant)
34 ccsGSettingsWrapperSetValue (priv->wrapper, gsettingsTranslatedName, newVariant);
35- else
36- ccsGSettingsWrapperResetKey (priv->wrapper, gsettingsTranslatedName);
37
38 g_variant_unref (variant);
39 free (gsettingsTranslatedName);
40
41=== modified file 'debian/changelog'
42--- debian/changelog 2014-04-23 14:56:06 +0000
43+++ debian/changelog 2014-06-30 20:29:46 +0000
44@@ -1,3 +1,29 @@
45+compiz (1:0.9.11+14.04.20140423-0ubuntu2) UNRELEASED; urgency=medium
46+
47+ [ Chris Townsend ]
48+ * Fix issue where window decorations would be placed under the Panel
49+ when opening a new window from an already open window. This is due
50+ to the already open window being taller or just as tall without be
51+ maximized than the workspace. (LP: #1303462)
52+ * Only constrain the non-modifier scrolling to the vertical scrolling
53+ buttons - buttons 4 & 5. (LP: #1311303)
54+ * Fix issue where maximized windows would get moved to different
55+ workspaces when disconnecting/connecting an external monitor.
56+ Windows should stay in the same workspace they are in when the
57+ monitor event occurs. (LP: #1304531)
58+ * Fix issue where horizontal and vertical keyboard resizing could not
59+ happen at the same time. (LP: #347390)
60+
61+ [ Marco Trevisan (TreviƱo) ]
62+ * Event: set the screen grabbed also when we get a NotifyWhileGrabbed
63+ Focus{In,Out} event (LP: #1305586)
64+
65+ [ Lukas Vacek ]
66+ * Fix issue where custom keyboard shortcuts would get reset to
67+ defaults when rebooting or restarting Compiz. (LP: #1063617)
68+
69+ -- Chris Townsend <christopher.townsend@canonical.com> Wed, 11 Jun 2014 10:26:04 -0400
70+
71 compiz (1:0.9.11+14.04.20140423-0ubuntu1) trusty; urgency=low
72
73 [ Ryan Tandy ]
74
75=== modified file 'plugins/place/src/place.cpp'
76--- plugins/place/src/place.cpp 2013-07-22 17:19:59 +0000
77+++ plugins/place/src/place.cpp 2014-06-30 20:29:46 +0000
78@@ -123,6 +123,8 @@
79 state |= compiz::place::WindowAbove;
80 if (window->state () & CompWindowStateBelowMask)
81 state |= compiz::place::WindowBelow;
82+ if (window->state () & CompWindowStateMaximizedVertMask || window->state () & CompWindowStateMaximizedHorzMask)
83+ state |= compiz::place::WindowMaximized;
84
85 return state;
86 }
87
88=== modified file 'plugins/place/src/screen-size-change/include/screen-size-change.h'
89--- plugins/place/src/screen-size-change/include/screen-size-change.h 2012-01-20 06:27:10 +0000
90+++ plugins/place/src/screen-size-change/include/screen-size-change.h 2014-06-30 20:29:46 +0000
91@@ -36,6 +36,7 @@
92 {
93 namespace place
94 {
95+ const unsigned int WindowMaximized = 1 << 2;
96
97 class ScreenSizeChangeObject
98 {
99@@ -50,6 +51,7 @@
100 virtual const CompPoint & getViewport () const = 0;
101 virtual const CompRect & getWorkarea (const compiz::window::Geometry &g) const = 0;
102 virtual const compiz::window::extents::Extents & getExtents () const = 0;
103+ virtual unsigned int getState () const = 0;
104
105 compiz::window::Geometry adjustForSize (const CompSize &oldSize,
106 const CompSize &newSize);
107
108=== modified file 'plugins/place/src/screen-size-change/src/screen-size-change.cpp'
109--- plugins/place/src/screen-size-change/src/screen-size-change.cpp 2013-04-07 08:45:50 +0000
110+++ plugins/place/src/screen-size-change/src/screen-size-change.cpp 2014-06-30 20:29:46 +0000
111@@ -39,7 +39,7 @@
112 {
113 int vpX, vpY;
114 compiz::window::Geometry g, vpRelRect;
115- int pivotX, pivotY;
116+ int pivotX, pivotY, pivotWidth, pivotHeight;
117
118 g = getGeometry ();
119 compiz::window::Geometry og (g);
120@@ -50,10 +50,13 @@
121 /* FIXME: Should use saved geometry for maximized / fullscreen windows */
122
123 /* calculate target vp x, y index for window's pivot point */
124- vpX = pivotX / oldSize.width ();
125+ pivotWidth = (getState () & compiz::place::WindowMaximized) ? newSize.width () : oldSize.width ();
126+ pivotHeight = (getState () & compiz::place::WindowMaximized) ? newSize.height () : oldSize.height ();
127+
128+ vpX = pivotX / pivotWidth;
129 if (pivotX < 0)
130 vpX -= 1;
131- vpY = pivotY / oldSize.height ();
132+ vpY = pivotY / pivotHeight;
133 if (pivotY < 0)
134 vpY -= 1;
135
136
137=== modified file 'plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp'
138--- plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp 2013-04-16 04:24:22 +0000
139+++ plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp 2014-06-30 20:29:46 +0000
140@@ -62,6 +62,7 @@
141 const CompPoint & getViewport () const;
142 const CompRect & getWorkarea (const cw::Geometry &g) const;
143 const cw::extents::Extents & getExtents () const;
144+ unsigned int getState () const;
145
146 void setVp (const CompPoint &);
147 void setWorkArea (const CompRect &);
148@@ -214,6 +215,12 @@
149 return mCurrentExtents;
150 }
151
152+unsigned int
153+StubScreenSizeChangeObject::getState () const
154+{
155+ return 0;
156+}
157+
158 void
159 StubScreenSizeChangeObject::setVp (const CompPoint &p)
160 {
161
162=== modified file 'plugins/resize/src/logic/include/resize-logic.h'
163--- plugins/resize/src/logic/include/resize-logic.h 2012-08-15 21:36:40 +0000
164+++ plugins/resize/src/logic/include/resize-logic.h 2014-06-30 20:29:46 +0000
165@@ -176,6 +176,9 @@
166 unsigned int output,
167 int &op,
168 int &wap);
169+
170+ unsigned int lastMaskX;
171+ unsigned int lastMaskY;
172 };
173
174 #endif /* RESIZELOGIC_H */
175
176=== modified file 'plugins/resize/src/logic/src/resize-logic.cpp'
177--- plugins/resize/src/logic/src/resize-logic.cpp 2014-03-11 18:35:18 +0000
178+++ plugins/resize/src/logic/src/resize-logic.cpp 2014-06-30 20:29:46 +0000
179@@ -65,7 +65,9 @@
180 offWorkAreaConstrained (true),
181 options (NULL),
182 cScreen (NULL),
183- gScreen (NULL)
184+ gScreen (NULL),
185+ lastMaskX (0),
186+ lastMaskY (0)
187 {
188 rKeys[0].name = "Left";
189 rKeys[0].dx = -1;
190@@ -411,6 +413,19 @@
191
192 mask = rKeys[i].resizeMask;
193
194+ if ((mask & ResizeLeftMask || mask & ResizeRightMask) && (mask != lastMaskX))
195+ {
196+ pointerDx *= -1;
197+
198+ lastMaskX = mask;
199+ }
200+ if ((mask & ResizeUpMask || mask & ResizeDownMask) && (mask != lastMaskY))
201+ {
202+ pointerDy *= -1;
203+
204+ lastMaskY = mask;
205+ }
206+
207 mScreen->updateGrab (grabIndex, cursor[i]);
208 }
209 break;
210@@ -439,14 +454,14 @@
211 accumulatePointerMotion (xRoot, yRoot);
212 }
213
214- if (mask & ResizeLeftMask)
215+ if (mask & ResizeLeftMask || lastMaskX & ResizeLeftMask)
216 wi -= pointerDx;
217- else if (mask & ResizeRightMask)
218+ else if (mask & ResizeRightMask || lastMaskX & ResizeRightMask)
219 wi += pointerDx;
220
221- if (mask & ResizeUpMask)
222+ if (mask & ResizeUpMask || lastMaskY & ResizeUpMask)
223 he -= pointerDy;
224- else if (mask & ResizeDownMask)
225+ else if (mask & ResizeDownMask || lastMaskY & ResizeDownMask)
226 he += pointerDy;
227
228 if (w->state () & CompWindowStateMaximizedVertMask)
229
230=== modified file 'src/event.cpp'
231--- src/event.cpp 2014-04-16 12:35:24 +0000
232+++ src/event.cpp 2014-06-30 20:29:46 +0000
233@@ -2333,6 +2333,8 @@
234 case FocusOut:
235 if (event->xfocus.mode == NotifyUngrab)
236 privateScreen.eventManager.ungrabNotified ();
237+ else if (event->xfocus.mode == NotifyWhileGrabbed)
238+ privateScreen.eventManager.grabNotified ();
239 break;
240 case EnterNotify:
241 if (event->xcrossing.root == privateScreen.rootWindow())
242
243=== modified file 'src/screen.cpp'
244--- src/screen.cpp 2014-04-16 12:35:24 +0000
245+++ src/screen.cpp 2014-06-30 20:29:46 +0000
246@@ -3421,12 +3421,11 @@
247 if (ignore & ~modHandler->ignoredModMask ())
248 continue;
249
250- /* Do not allow binding of the scroll wheel for windows other than the desktop
251+ /* Do not allow binding of vertical scrolling for windows other than the desktop
252 * unless there is a modifier defined */
253 if (window &&
254 !(window->type () & CompWindowTypeDesktopMask) &&
255- bind.button > 3 &&
256- bind.button < 8 &&
257+ (bind.button == Button4 || bind.button == Button5) &&
258 !mods)
259 continue;
260
261
262=== modified file 'src/window.cpp'
263--- src/window.cpp 2014-04-09 15:52:47 +0000
264+++ src/window.cpp 2014-06-30 20:29:46 +0000
265@@ -3553,11 +3553,20 @@
266 int mask = 0;
267 CompPoint viewport;
268
269- if (old.intersects (CompRect (0, 0, screen->width (), screen->height ())))
270+ if (old.intersects (CompRect (0, 0, screen->width (), screen->height ())) &&
271+ !(state & CompWindowStateMaximizedHorzMask || state & CompWindowStateMaximizedVertMask))
272 viewport = screen->vp ();
273+ else if ((state & CompWindowStateMaximizedHorzMask || state & CompWindowStateMaximizedVertMask) &&
274+ window->moved ())
275+ viewport = initialViewport;
276 else
277 screen->viewportForGeometry (old, viewport);
278
279+ if (viewport.x () > screen->vpSize ().width () - 1)
280+ viewport.setX (screen->vpSize ().width () - 1);
281+ if (viewport.y () > screen->vpSize ().height () - 1)
282+ viewport.setY (screen->vpSize ().height () - 1);
283+
284 int x = (viewport.x () - screen->vp ().x ()) * screen->width ();
285 int y = (viewport.y () - screen->vp ().y ()) * screen->height ();
286
287@@ -4021,6 +4030,8 @@
288
289 if (placed)
290 priv->placed = true;
291+
292+ priv->initialViewport = defaultViewport ();
293 }
294
295 bool
296@@ -4674,6 +4685,8 @@
297 if (overrideRedirect ())
298 return;
299
300+ priv->initialViewport = screen->vp ();
301+
302 state = constrainWindowState (state, priv->actions);
303
304 state &= MAXIMIZE_STATE;
305@@ -5637,8 +5650,8 @@
306
307 if (!(priv->type & CompWindowTypeDesktopMask))
308 {
309- /* Ungrab Buttons 4-7 for scrolling if the window is not the desktop window */
310- for (int i = 4; i <= 7; i++)
311+ /* Ungrab Buttons 4 & 5 for vertical scrolling if the window is not the desktop window */
312+ for (int i = Button4; i <= Button5; ++i)
313 XUngrabButton (screen->dpy (), i, AnyModifier, frame);
314 }
315 }
316@@ -5832,6 +5845,10 @@
317 xwc.y = serverGeometry ().y () + wy;
318
319 configureXWindow (valueMask, &xwc);
320+
321+ if ((state () & CompWindowStateMaximizedHorzMask || state () & CompWindowStateMaximizedVertMask) &&
322+ (defaultViewport () == screen->vp ()))
323+ priv->initialViewport = screen->vp ();
324 }
325 }
326
327@@ -6664,6 +6681,9 @@
328
329 if (xwc.x < workarea.x ())
330 xwc.x = workarea.x () + movement.x ();
331+
332+ if (xwc.x - boffset.x () < workarea.x ())
333+ xwc.x += boffset.x ();
334 }
335
336 if (xwc.y + xwc.height > workarea.y2 ())
337@@ -6672,6 +6692,9 @@
338
339 if (xwc.y < workarea.y ())
340 xwc.y = workarea.y () + movement.y ();
341+
342+ if (xwc.y - boffset.y () < workarea.y ())
343+ xwc.y += boffset.y ();
344 }
345
346 if (priv->actions & CompWindowActionResizeMask)
347
348=== modified file 'src/window/extents/src/windowextents.cpp'
349--- src/window/extents/src/windowextents.cpp 2014-03-10 12:53:17 +0000
350+++ src/window/extents/src/windowextents.cpp 2014-06-30 20:29:46 +0000
351@@ -43,6 +43,7 @@
352 case NorthGravity:
353 case NorthWestGravity:
354 case NorthEastGravity:
355+ case CenterGravity:
356 rv.setY (extents.top);
357 break;
358 case SouthGravity:

Subscribers

People subscribed via source and target branches