diff -Nru compiz-0.9.11+14.04.20140423/compizconfig/gsettings/src/gsettings.c compiz-0.9.11.1+14.04.20140701/compizconfig/gsettings/src/gsettings.c --- compiz-0.9.11+14.04.20140423/compizconfig/gsettings/src/gsettings.c 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/compizconfig/gsettings/src/gsettings.c 2014-07-01 11:51:02.000000000 +0000 @@ -423,13 +423,19 @@ static void updateSetting (CCSBackend *backend, CCSContext *context, CCSPlugin *plugin, CCSSetting *setting) { + Bool status; CCSIntegratedSetting *integrated = ccsGSettingsBackendGetIntegratedSetting (backend, setting); - ccsBackendReadInit (backend, context); - if (!readOption (backend, setting)) + if (ccsGetIntegrationEnabled (context) && + integrated) { - ccsResetToDefault (setting, TRUE); + status = readIntegratedOption (backend, setting, integrated); } + else + status = readOption (backend, setting); + + if (!status) + ccsResetToDefault (setting, TRUE); if (ccsGetIntegrationEnabled (context) && integrated) diff -Nru compiz-0.9.11+14.04.20140423/compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c compiz-0.9.11.1+14.04.20140701/compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c --- compiz-0.9.11+14.04.20140423/compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c 2014-07-01 11:51:02.000000000 +0000 @@ -244,8 +244,6 @@ /* g_settings_set_value consumes the reference */ if (newVariant) ccsGSettingsWrapperSetValue (priv->wrapper, gsettingsTranslatedName, newVariant); - else - ccsGSettingsWrapperResetKey (priv->wrapper, gsettingsTranslatedName); g_variant_unref (variant); free (gsettingsTranslatedName); diff -Nru compiz-0.9.11+14.04.20140423/debian/changelog compiz-0.9.11.1+14.04.20140701/debian/changelog --- compiz-0.9.11+14.04.20140423/debian/changelog 2014-07-10 16:04:48.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/debian/changelog 2014-07-10 16:04:48.000000000 +0000 @@ -1,3 +1,39 @@ +compiz (1:0.9.11.1+14.04.20140701-0ubuntu1) trusty; urgency=medium + + [ Chris Townsend ] + * Bump version to 0.9.11.1. + + [ Ubuntu daily release ] + * New rebuild forced + + -- Ubuntu daily release Tue, 01 Jul 2014 11:51:26 +0000 + +compiz (1:0.9.11+14.04.20140423-0ubuntu2) UNRELEASED; urgency=medium + + [ Chris Townsend ] + * Fix issue where window decorations would be placed under the Panel + when opening a new window from an already open window. This is due + to the already open window being taller or just as tall without be + maximized than the workspace. (LP: #1303462) + * Only constrain the non-modifier scrolling to the vertical scrolling + buttons - buttons 4 & 5. (LP: #1311303) + * Fix issue where maximized windows would get moved to different + workspaces when disconnecting/connecting an external monitor. + Windows should stay in the same workspace they are in when the + monitor event occurs. (LP: #1304531) + * Fix issue where horizontal and vertical keyboard resizing could not + happen at the same time. (LP: #347390) + + [ Marco Trevisan (TreviƱo) ] + * Event: set the screen grabbed also when we get a NotifyWhileGrabbed + Focus{In,Out} event (LP: #1305586) + + [ Lukas Vacek ] + * Fix issue where custom keyboard shortcuts would get reset to + defaults when rebooting or restarting Compiz. (LP: #1063617) + + -- Chris Townsend Wed, 11 Jun 2014 10:26:04 -0400 + compiz (1:0.9.11+14.04.20140423-0ubuntu1) trusty; urgency=low [ Ryan Tandy ] diff -Nru compiz-0.9.11+14.04.20140423/NEWS compiz-0.9.11.1+14.04.20140701/NEWS --- compiz-0.9.11+14.04.20140423/NEWS 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/NEWS 2014-07-01 11:51:14.000000000 +0000 @@ -1,3 +1,92 @@ +Release 0.9.11 (2014-6-30 Christopher Townsend ) +============================================================================= + +Bugs Fixed (https://launchpad.net/compiz/+milestone/0.9.11) + + 1019139 - [regression] Horizontally resizing a vertically maximized + terminal is now very slow, unresponsive. + 1019923 - Stuck in scale mode, can't get out without killing compiz + 1027868 - Changing "Composite > Detect Refresh Rate" is ignored initially + 1031710 - Multi-Monitor. Workspace switcher on monitor 2 is drawn under + launcher + 1055166 - compiz crashed with SIGSEGV in memmove() from + drisw_update_tex_buffer() from dri_set_tex_buffer2() from + operator() from compiz::opengl::bindTexImageGLX() from ... from + unity::UnityWindow::DrawWindowDecoration + 1063617 - 1:0.9.8+bzr3319-0ubuntu1 regression: keeps setting gsettings + keys to wrong values + 1087090 - [raring][regression] Window management - Maximized windows + aren't fullscreen in the workspace switcher + 1092323 - Window management - Switching to windows placed on two work + spaces causes the workspace to switch + 1104236 - [regression] Unity show desktop fade out makes them invisible in + spread. + 1171342 - mouse scroll wheel not working in gedit & System Monitor + 1171878 - Adding/Removing an external monitor causes maximized windows to + move to another workspace + 1176898 - Grid: Snap animation uses wrong window + 1184159 - [saucy] scrolling with a touchpad is jerky with bindings set in + compiz for Desktop-based Viewport Switching + 1191853 - gtk-window-decorator crashed with SIGSEGV in + wnck_window_get_actions() + 1192028 - Compiz refresh rate resets to 50 Hz automatically w/ Nvidia + proprietary driver + 1200829 - Regression: Enabling typical bindings in "Desktop-based + Viewport Switching" breaks scrollwheel scrolling in some windows + with a usb mouse on a laptop + 1204307 - Regression: The size of all windows grows by the size of the + decoration each time Compiz gets restarted + 1217286 - Regression r3751: Restarting Compiz changes size and position of + windows + 1228352 - [regression] Alt-Tab for all viewports will not switch viewports + when selecting a window on another viewport + 1228507 - Cannot move certain windows via the top half of the titlebar in + Ubuntu 13.10 + 1236899 - [regression] Ctrl+Alt+KP_0 should minimize a window + 1238111 - Compiz causes Motif window shrunk + 1240957 - Scrolling behaviour and window focus has changed and is + inconsistent + 1244754 - [regression] compiz freezes when dragging a window to the top + bar after being semi-maximized + 1251777 - [regression] Semi-maximizing and then restoring the window does + not return it to it's original place using Ctrl-Super-Left/Right + 1277487 - Create Unity Settings Daemon so can remain on old GNOME Settings + Daemon version + 1280377 - Resizing vertically a window in normal mode doesn't vertically + maximize it correctly + 1280616 - When launcher is in autohide mode the launcher icons are not + clickable + 1281370 - Unity should use "Normal" resize mode by default + 1282304 - Bottom-edge window placement doesn't take decoration height into + consideration + 1282305 - Repeatedly undecorating and redecorating a window shrinks it + vertically + 1287472 - compiz unnecessarily shrinks new windows + 1288953 - fix kde4-window-decorator build + 1289820 - 'Move to Another Workspace' causes window to disappear + 1292220 - ccsm crashed with UnboundLocalError in AskUser(): local variable + 'msg_dict' referenced before assignment + 1294341 - Some of the input fields are blank in CompizConfig Settings + Manager + 1303068 - Regression: rev 3847 No focus on Desktop possible if a window is + open + 1303462 - [Regression] Window titlebars placed behind panel + 1304531 - Removing an external monitor will move a maximized window to the + current workspace + 1304877 - Functions assigned to extra mouse buttons in compiz do not work + anymore. + 1305586 - Lock screen is unusable when some windows have a keyboard/mouse + grab + 1311303 - Compiz mouse functions mapped to horizontal scrolling buttons do + not work + 1311788 - compiz lower window:Button5 stops working + 347390 - Compiz can't resize a window vertically AND horizontally with + keyboard. + 890747 - Keyboard shortcut - Ctrl Alt Del doesn't do what most people + typing it would expect + 992697 - Window management - 'Ctrl-Alt-Numpad 4' and 'Ctrl-Alt-Numpad 6' + window placement shortcuts are broken + Release 0.9.10.0 (2013-7-21 Sam Spilsbury ) ================================================================ diff -Nru compiz-0.9.11+14.04.20140423/plugins/place/src/place.cpp compiz-0.9.11.1+14.04.20140701/plugins/place/src/place.cpp --- compiz-0.9.11+14.04.20140423/plugins/place/src/place.cpp 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/plugins/place/src/place.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -123,6 +123,8 @@ state |= compiz::place::WindowAbove; if (window->state () & CompWindowStateBelowMask) state |= compiz::place::WindowBelow; + if (window->state () & CompWindowStateMaximizedVertMask || window->state () & CompWindowStateMaximizedHorzMask) + state |= compiz::place::WindowMaximized; return state; } diff -Nru compiz-0.9.11+14.04.20140423/plugins/place/src/screen-size-change/include/screen-size-change.h compiz-0.9.11.1+14.04.20140701/plugins/place/src/screen-size-change/include/screen-size-change.h --- compiz-0.9.11+14.04.20140423/plugins/place/src/screen-size-change/include/screen-size-change.h 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/plugins/place/src/screen-size-change/include/screen-size-change.h 2014-07-01 11:51:02.000000000 +0000 @@ -36,6 +36,7 @@ { namespace place { + const unsigned int WindowMaximized = 1 << 2; class ScreenSizeChangeObject { @@ -50,6 +51,7 @@ virtual const CompPoint & getViewport () const = 0; virtual const CompRect & getWorkarea (const compiz::window::Geometry &g) const = 0; virtual const compiz::window::extents::Extents & getExtents () const = 0; + virtual unsigned int getState () const = 0; compiz::window::Geometry adjustForSize (const CompSize &oldSize, const CompSize &newSize); diff -Nru compiz-0.9.11+14.04.20140423/plugins/place/src/screen-size-change/src/screen-size-change.cpp compiz-0.9.11.1+14.04.20140701/plugins/place/src/screen-size-change/src/screen-size-change.cpp --- compiz-0.9.11+14.04.20140423/plugins/place/src/screen-size-change/src/screen-size-change.cpp 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/plugins/place/src/screen-size-change/src/screen-size-change.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -39,7 +39,7 @@ { int vpX, vpY; compiz::window::Geometry g, vpRelRect; - int pivotX, pivotY; + int pivotX, pivotY, pivotWidth, pivotHeight; g = getGeometry (); compiz::window::Geometry og (g); @@ -50,10 +50,13 @@ /* FIXME: Should use saved geometry for maximized / fullscreen windows */ /* calculate target vp x, y index for window's pivot point */ - vpX = pivotX / oldSize.width (); + pivotWidth = (getState () & compiz::place::WindowMaximized) ? newSize.width () : oldSize.width (); + pivotHeight = (getState () & compiz::place::WindowMaximized) ? newSize.height () : oldSize.height (); + + vpX = pivotX / pivotWidth; if (pivotX < 0) vpX -= 1; - vpY = pivotY / oldSize.height (); + vpY = pivotY / pivotHeight; if (pivotY < 0) vpY -= 1; diff -Nru compiz-0.9.11+14.04.20140423/plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp compiz-0.9.11.1+14.04.20140701/plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp --- compiz-0.9.11+14.04.20140423/plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -62,6 +62,7 @@ const CompPoint & getViewport () const; const CompRect & getWorkarea (const cw::Geometry &g) const; const cw::extents::Extents & getExtents () const; + unsigned int getState () const; void setVp (const CompPoint &); void setWorkArea (const CompRect &); @@ -214,6 +215,12 @@ return mCurrentExtents; } +unsigned int +StubScreenSizeChangeObject::getState () const +{ + return 0; +} + void StubScreenSizeChangeObject::setVp (const CompPoint &p) { diff -Nru compiz-0.9.11+14.04.20140423/plugins/resize/src/logic/include/resize-logic.h compiz-0.9.11.1+14.04.20140701/plugins/resize/src/logic/include/resize-logic.h --- compiz-0.9.11+14.04.20140423/plugins/resize/src/logic/include/resize-logic.h 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/plugins/resize/src/logic/include/resize-logic.h 2014-07-01 11:51:02.000000000 +0000 @@ -176,6 +176,9 @@ unsigned int output, int &op, int &wap); + + unsigned int lastMaskX; + unsigned int lastMaskY; }; #endif /* RESIZELOGIC_H */ diff -Nru compiz-0.9.11+14.04.20140423/plugins/resize/src/logic/src/resize-logic.cpp compiz-0.9.11.1+14.04.20140701/plugins/resize/src/logic/src/resize-logic.cpp --- compiz-0.9.11+14.04.20140423/plugins/resize/src/logic/src/resize-logic.cpp 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/plugins/resize/src/logic/src/resize-logic.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -65,7 +65,9 @@ offWorkAreaConstrained (true), options (NULL), cScreen (NULL), - gScreen (NULL) + gScreen (NULL), + lastMaskX (0), + lastMaskY (0) { rKeys[0].name = "Left"; rKeys[0].dx = -1; @@ -411,6 +413,19 @@ mask = rKeys[i].resizeMask; + if ((mask & ResizeLeftMask || mask & ResizeRightMask) && (mask != lastMaskX)) + { + pointerDx *= -1; + + lastMaskX = mask; + } + if ((mask & ResizeUpMask || mask & ResizeDownMask) && (mask != lastMaskY)) + { + pointerDy *= -1; + + lastMaskY = mask; + } + mScreen->updateGrab (grabIndex, cursor[i]); } break; @@ -439,14 +454,14 @@ accumulatePointerMotion (xRoot, yRoot); } - if (mask & ResizeLeftMask) + if (mask & ResizeLeftMask || lastMaskX & ResizeLeftMask) wi -= pointerDx; - else if (mask & ResizeRightMask) + else if (mask & ResizeRightMask || lastMaskX & ResizeRightMask) wi += pointerDx; - if (mask & ResizeUpMask) + if (mask & ResizeUpMask || lastMaskY & ResizeUpMask) he -= pointerDy; - else if (mask & ResizeDownMask) + else if (mask & ResizeDownMask || lastMaskY & ResizeDownMask) he += pointerDy; if (w->state () & CompWindowStateMaximizedVertMask) diff -Nru compiz-0.9.11+14.04.20140423/scripts/release.py compiz-0.9.11.1+14.04.20140701/scripts/release.py --- compiz-0.9.11+14.04.20140423/scripts/release.py 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/scripts/release.py 2014-07-01 11:51:14.000000000 +0000 @@ -26,11 +26,11 @@ import datetime def usage (): - print ("release.py VERSION") + print ("release.py VERSION [SINCE]") print ("Make a release and bump version to VERSION") sys.exit (1) -if len(sys.argv) != 2: +if len(sys.argv) < 2: usage () if not "release.py" in os.listdir ("."): @@ -56,13 +56,23 @@ most_recent_revision = 0 -# Find the last tagged revision +since = None + +if len (sys.argv) == 3: + since = sys.argv[2]; + +# Find the last tagged revision or the specified tag for tag, revid in tags: try: revision = compiz_branch.revision_id_to_dotted_revno (revid)[0] - if int (revision) > most_recent_revision: + if since != None: + if tag == since: + most_recent_revision = revision + + elif int (revision) > most_recent_revision: most_recent_revision = revision + except (errors.NoSuchRevision, errors.GhostRevisionsHaveNoRevno, errors.UnsupportedOperation): diff -Nru compiz-0.9.11+14.04.20140423/src/event.cpp compiz-0.9.11.1+14.04.20140701/src/event.cpp --- compiz-0.9.11+14.04.20140423/src/event.cpp 2014-04-23 14:55:09.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/src/event.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -2333,6 +2333,8 @@ case FocusOut: if (event->xfocus.mode == NotifyUngrab) privateScreen.eventManager.ungrabNotified (); + else if (event->xfocus.mode == NotifyWhileGrabbed) + privateScreen.eventManager.grabNotified (); break; case EnterNotify: if (event->xcrossing.root == privateScreen.rootWindow()) diff -Nru compiz-0.9.11+14.04.20140423/src/screen.cpp compiz-0.9.11.1+14.04.20140701/src/screen.cpp --- compiz-0.9.11+14.04.20140423/src/screen.cpp 2014-04-23 14:55:09.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/src/screen.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -3421,12 +3421,11 @@ if (ignore & ~modHandler->ignoredModMask ()) continue; - /* Do not allow binding of the scroll wheel for windows other than the desktop + /* Do not allow binding of vertical scrolling for windows other than the desktop * unless there is a modifier defined */ if (window && !(window->type () & CompWindowTypeDesktopMask) && - bind.button > 3 && - bind.button < 8 && + (bind.button == Button4 || bind.button == Button5) && !mods) continue; diff -Nru compiz-0.9.11+14.04.20140423/src/window/extents/src/windowextents.cpp compiz-0.9.11.1+14.04.20140701/src/window/extents/src/windowextents.cpp --- compiz-0.9.11+14.04.20140423/src/window/extents/src/windowextents.cpp 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/src/window/extents/src/windowextents.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -43,6 +43,7 @@ case NorthGravity: case NorthWestGravity: case NorthEastGravity: + case CenterGravity: rv.setY (extents.top); break; case SouthGravity: diff -Nru compiz-0.9.11+14.04.20140423/src/window.cpp compiz-0.9.11.1+14.04.20140701/src/window.cpp --- compiz-0.9.11+14.04.20140423/src/window.cpp 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/src/window.cpp 2014-07-01 11:51:02.000000000 +0000 @@ -3553,11 +3553,20 @@ int mask = 0; CompPoint viewport; - if (old.intersects (CompRect (0, 0, screen->width (), screen->height ()))) + if (old.intersects (CompRect (0, 0, screen->width (), screen->height ())) && + !(state & CompWindowStateMaximizedHorzMask || state & CompWindowStateMaximizedVertMask)) viewport = screen->vp (); + else if ((state & CompWindowStateMaximizedHorzMask || state & CompWindowStateMaximizedVertMask) && + window->moved ()) + viewport = initialViewport; else screen->viewportForGeometry (old, viewport); + if (viewport.x () > screen->vpSize ().width () - 1) + viewport.setX (screen->vpSize ().width () - 1); + if (viewport.y () > screen->vpSize ().height () - 1) + viewport.setY (screen->vpSize ().height () - 1); + int x = (viewport.x () - screen->vp ().x ()) * screen->width (); int y = (viewport.y () - screen->vp ().y ()) * screen->height (); @@ -4021,6 +4030,8 @@ if (placed) priv->placed = true; + + priv->initialViewport = defaultViewport (); } bool @@ -4674,6 +4685,8 @@ if (overrideRedirect ()) return; + priv->initialViewport = screen->vp (); + state = constrainWindowState (state, priv->actions); state &= MAXIMIZE_STATE; @@ -5637,8 +5650,8 @@ if (!(priv->type & CompWindowTypeDesktopMask)) { - /* Ungrab Buttons 4-7 for scrolling if the window is not the desktop window */ - for (int i = 4; i <= 7; i++) + /* Ungrab Buttons 4 & 5 for vertical scrolling if the window is not the desktop window */ + for (int i = Button4; i <= Button5; ++i) XUngrabButton (screen->dpy (), i, AnyModifier, frame); } } @@ -5832,6 +5845,10 @@ xwc.y = serverGeometry ().y () + wy; configureXWindow (valueMask, &xwc); + + if ((state () & CompWindowStateMaximizedHorzMask || state () & CompWindowStateMaximizedVertMask) && + (defaultViewport () == screen->vp ())) + priv->initialViewport = screen->vp (); } } @@ -6664,6 +6681,9 @@ if (xwc.x < workarea.x ()) xwc.x = workarea.x () + movement.x (); + + if (xwc.x - boffset.x () < workarea.x ()) + xwc.x += boffset.x (); } if (xwc.y + xwc.height > workarea.y2 ()) @@ -6672,6 +6692,9 @@ if (xwc.y < workarea.y ()) xwc.y = workarea.y () + movement.y (); + + if (xwc.y - boffset.y () < workarea.y ()) + xwc.y += boffset.y (); } if (priv->actions & CompWindowActionResizeMask) diff -Nru compiz-0.9.11+14.04.20140423/VERSION compiz-0.9.11.1+14.04.20140701/VERSION --- compiz-0.9.11+14.04.20140423/VERSION 2014-04-23 14:54:46.000000000 +0000 +++ compiz-0.9.11.1+14.04.20140701/VERSION 2014-07-01 11:51:14.000000000 +0000 @@ -1 +1 @@ -0.9.11 +0.9.11.1