diff -Nru mutter-3.10.4/debian/changelog mutter-3.12.2/debian/changelog --- mutter-3.10.4/debian/changelog 2014-06-03 13:07:50.000000000 +1000 +++ mutter-3.12.2/debian/changelog 2014-06-07 17:01:35.000000000 +1000 @@ -1,3 +1,68 @@ +mutter (3.12.2-1ubuntu1) utopic; urgency=medium + + * Merge with Debian. Remaining changes: + - debian/patches/04_ignore_shadow_and_padding.patch: + + Silently ignore padding and shadow tags (for light-themes) + - debian/control.in: Don't depend on gnome-desktop3 3.10 + - Add Replaces for previous libmutter sonames, so that the library + upgrades properly. + * Drop all our git patches + * Set upower build-depend to << 0.99 + * Add revert_upower_api_changes.patch + + -- Jackson Doak Sat, 07 Jun 2014 16:47:00 +1000 + +mutter (3.12.2-1) experimental; urgency=medium + + [ Sjoerd Simons ] + * debian/rules: Don't constrain the libmutter0 dependencies via shlibs + as we change the library names on ABI breaks now + + [ Andreas Henriksson ] + * New upstream release. + + -- Andreas Henriksson Fri, 16 May 2014 17:36:21 +0200 + +mutter (3.12.1+therealdeal-1) experimental; urgency=medium + + * Tweak version to be bigger then the one in unstable + + -- Sjoerd Simons Sat, 26 Apr 2014 19:38:07 +0200 + +mutter (3.12.1-1) unstable; urgency=medium + + * New upstream release + + -- Sjoerd Simons Sat, 26 Apr 2014 17:47:46 +0200 + +mutter (3.12.0-2) experimental; urgency=low + + [ Rico Tzschichholz ] + * Update library name to libmutter0d since the API/ABI is not compatible + with 3.10.x releases + + [ Emilio Pozuelo Monfort ] + * Let libmutter0d conflict with libmutter0c. + + -- Emilio Pozuelo Monfort Thu, 03 Apr 2014 10:30:00 +0200 + +mutter (3.12.0-1) experimental; urgency=low + + [ Sjoerd Simons ] + * debian/patches/prevent-double-lock-deadlock.patch: + + Added. Don't call X functions that lock the display in code paths that + have already locked the display if X threads have been initialized + (bgo#704101) + + [ Andreas Henriksson ] + * New upstream release. + * Update build-dependencies according to configure.ac changes: + - bump upower 0.99.0 + - bump cogl 1.17.1 + * Bump Standards-Version to 3.9.5 + + -- Andreas Henriksson Sat, 29 Mar 2014 22:09:55 +0100 + mutter (3.10.4-0ubuntu5) utopic; urgency=medium * debian/patches/git-dont-leave-focus-on-unmanage.patch: git patch @@ -1680,4 +1745,3 @@ * Initial Release. (Closes: #107181) -- Thom May Sun, 10 Feb 2002 12:03:22 +0000 - diff -Nru mutter-3.10.4/debian/control mutter-3.12.2/debian/control --- mutter-3.10.4/debian/control 2014-06-03 13:07:55.000000000 +1000 +++ mutter-3.12.2/debian/control 2014-06-07 17:02:46.000000000 +1000 @@ -7,7 +7,7 @@ Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian GNOME Maintainers -Uploaders: Debian GNOME Maintainers , Sjoerd Simons +Uploaders: Andreas Henriksson , Debian GNOME Maintainers , Emilio Pozuelo Monfort , Sjoerd Simons Build-Depends: cdbs (>= 0.4.90), debhelper (>= 9), gnome-pkg-tools (>= 0.10), @@ -20,13 +20,13 @@ gsettings-desktop-schemas-dev (>= 3.7.3), libgirepository1.0-dev (>= 0.9.12), libjson-glib-dev (>= 0.13.2-1~), - libcogl-dev (>= 1.12.0), - libclutter-1.0-dev (>= 1.14.3), + libcogl-dev (>= 1.17.1), + libclutter-1.0-dev (>= 1.15.90), libpango1.0-dev (>= 1.2.0), libcairo2-dev (>= 1.2.0), libgnome-desktop-3-dev, libstartup-notification0-dev (>= 0.7), - libupower-glib-dev (>= 0.9.11), + libupower-glib-dev (<< 0.99.0), libxcomposite-dev (>= 1:0.2), libxi-dev (>= 2:1.6.0), libxfixes-dev, @@ -41,7 +41,7 @@ libsm-dev, libice-dev, zenity -Standards-Version: 3.9.4 +Standards-Version: 3.9.5 Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/mutter Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/mutter @@ -75,7 +75,7 @@ Section: debug Priority: extra Depends: mutter (= ${binary:Version}), - libmutter0c (= ${binary:Version}), + libmutter0d (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for the Mutter window manager Mutter is a small window manager, using GTK+ and Clutter to do @@ -88,15 +88,15 @@ . This package contains detached debugging symbols. -Package: libmutter0c +Package: libmutter0d Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, gsettings-desktop-schemas (>= 3.7.3), mutter-common (= ${source:Version}) -Conflicts: libmutter0, libmutter0a, libmutter0b -Replaces: libmutter0, libmutter0a, libmutter0b +Conflicts: libmutter0, libmutter0a, libmutter0b, libmutter0c +Replaces: libmutter0, libmutter0a, libmutter0b, libmutter0c Description: window manager library from the Mutter window manager Mutter is a small window manager, using GTK+ and Clutter to do everything. @@ -129,10 +129,10 @@ Section: libdevel Architecture: any Depends: ${misc:Depends}, - libmutter0c (= ${binary:Version}), + libmutter0d (= ${binary:Version}), gir1.2-mutter-3.0 (= ${binary:Version}), gsettings-desktop-schemas-dev (>= 3.7.3), - libclutter-1.0-dev (>= 1.14.3), + libclutter-1.0-dev (>= 1.15.90), libgtk-3-dev (>= 3.9.11), libx11-dev Description: Development files for the Mutter window manager diff -Nru mutter-3.10.4/debian/control.in mutter-3.12.2/debian/control.in --- mutter-3.10.4/debian/control.in 2014-01-23 09:12:47.000000000 +1100 +++ mutter-3.12.2/debian/control.in 2014-06-07 17:01:53.000000000 +1000 @@ -16,13 +16,13 @@ gsettings-desktop-schemas-dev (>= 3.7.3), libgirepository1.0-dev (>= 0.9.12), libjson-glib-dev (>= 0.13.2-1~), - libcogl-dev (>= 1.12.0), - libclutter-1.0-dev (>= 1.14.3), + libcogl-dev (>= 1.17.1), + libclutter-1.0-dev (>= 1.15.90), libpango1.0-dev (>= 1.2.0), libcairo2-dev (>= 1.2.0), libgnome-desktop-3-dev, libstartup-notification0-dev (>= 0.7), - libupower-glib-dev (>= 0.9.11), + libupower-glib-dev (<< 0.99.0), libxcomposite-dev (>= 1:0.2), libxi-dev (>= 2:1.6.0), libxfixes-dev, @@ -37,7 +37,7 @@ libsm-dev, libice-dev, zenity -Standards-Version: 3.9.4 +Standards-Version: 3.9.5 Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/mutter Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/mutter @@ -71,7 +71,7 @@ Section: debug Priority: extra Depends: mutter (= ${binary:Version}), - libmutter0c (= ${binary:Version}), + libmutter0d (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for the Mutter window manager Mutter is a small window manager, using GTK+ and Clutter to do @@ -84,15 +84,15 @@ . This package contains detached debugging symbols. -Package: libmutter0c +Package: libmutter0d Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, gsettings-desktop-schemas (>= 3.7.3), mutter-common (= ${source:Version}) -Conflicts: libmutter0, libmutter0a, libmutter0b -Replaces: libmutter0, libmutter0a, libmutter0b +Conflicts: libmutter0, libmutter0a, libmutter0b, libmutter0c +Replaces: libmutter0, libmutter0a, libmutter0b, libmutter0c Description: window manager library from the Mutter window manager Mutter is a small window manager, using GTK+ and Clutter to do everything. @@ -125,10 +125,10 @@ Section: libdevel Architecture: any Depends: ${misc:Depends}, - libmutter0c (= ${binary:Version}), + libmutter0d (= ${binary:Version}), gir1.2-mutter-3.0 (= ${binary:Version}), gsettings-desktop-schemas-dev (>= 3.7.3), - libclutter-1.0-dev (>= 1.14.3), + libclutter-1.0-dev (>= 1.15.90), libgtk-3-dev (>= 3.9.11), libx11-dev Description: Development files for the Mutter window manager diff -Nru mutter-3.10.4/debian/libmutter0c.install mutter-3.12.2/debian/libmutter0c.install --- mutter-3.10.4/debian/libmutter0c.install 2014-01-17 11:48:32.000000000 +1100 +++ mutter-3.12.2/debian/libmutter0c.install 1970-01-01 10:00:00.000000000 +1000 @@ -1 +0,0 @@ -usr/lib/libmutter.so.* diff -Nru mutter-3.10.4/debian/libmutter0d.install mutter-3.12.2/debian/libmutter0d.install --- mutter-3.10.4/debian/libmutter0d.install 1970-01-01 10:00:00.000000000 +1000 +++ mutter-3.12.2/debian/libmutter0d.install 2014-04-03 18:45:30.000000000 +1100 @@ -0,0 +1 @@ +usr/lib/libmutter.so.* diff -Nru mutter-3.10.4/debian/patches/0001-Update-for-Cogl-API-breaks.patch mutter-3.12.2/debian/patches/0001-Update-for-Cogl-API-breaks.patch --- mutter-3.10.4/debian/patches/0001-Update-for-Cogl-API-breaks.patch 2014-04-27 08:57:13.000000000 +1000 +++ mutter-3.12.2/debian/patches/0001-Update-for-Cogl-API-breaks.patch 1970-01-01 10:00:00.000000000 +1000 @@ -1,107 +0,0 @@ -From d2a1db8834bf0a9007bf6924b006a6f2c94ce88d Mon Sep 17 00:00:00 2001 -From: "Jasper St. Pierre" -Date: Mon, 13 Jan 2014 13:03:19 -0500 -Subject: [PATCH] Update for Cogl API breaks - ---- - configure.ac | 2 +- - src/compositor/meta-texture-rectangle.c | 9 ++------- - src/compositor/meta-texture-rectangle.h | 4 +--- - src/compositor/meta-texture-tower.c | 4 ---- - src/compositor/meta-window-actor.c | 5 +---- - src/core/meta-cursor-tracker.c | 1 - - 6 files changed, 5 insertions(+), 20 deletions(-) - -diff --git a/src/compositor/meta-texture-rectangle.c b/src/compositor/meta-texture-rectangle.c -index 3fc9430..450155d 100644 ---- a/src/compositor/meta-texture-rectangle.c -+++ b/src/compositor/meta-texture-rectangle.c -@@ -30,10 +30,8 @@ CoglTexture * - meta_texture_rectangle_new (unsigned int width, - unsigned int height, - CoglPixelFormat format, -- CoglPixelFormat internal_format, - unsigned int rowstride, -- const guint8 *data, -- GError **error) -+ const guint8 *data) - { - ClutterBackend *backend = - clutter_get_default_backend (); -@@ -41,10 +39,7 @@ meta_texture_rectangle_new (unsigned int width, - clutter_backend_get_cogl_context (backend); - CoglTextureRectangle *tex_rect; - -- tex_rect = cogl_texture_rectangle_new_with_size (context, -- width, height, -- internal_format, -- error); -+ tex_rect = cogl_texture_rectangle_new_with_size (context, width, height); - if (tex_rect == NULL) - return NULL; - -diff --git a/src/compositor/meta-texture-rectangle.h b/src/compositor/meta-texture-rectangle.h -index 30f60d3..7b84229 100644 ---- a/src/compositor/meta-texture-rectangle.h -+++ b/src/compositor/meta-texture-rectangle.h -@@ -32,10 +32,8 @@ CoglTexture * - meta_texture_rectangle_new (unsigned int width, - unsigned int height, - CoglPixelFormat format, -- CoglPixelFormat internal_format, - unsigned int rowstride, -- const guint8 *data, -- GError **error); -+ const guint8 *data); - - gboolean - meta_texture_rectangle_check (CoglTexture *texture); -diff --git a/src/compositor/meta-texture-tower.c b/src/compositor/meta-texture-tower.c -index 9a30de0..019aaf4 100644 ---- a/src/compositor/meta-texture-tower.c -+++ b/src/compositor/meta-texture-tower.c -@@ -363,13 +363,9 @@ texture_tower_create_texture (MetaTextureTower *tower, - meta_texture_rectangle_new (width, height, - /* data format */ - TEXTURE_FORMAT, -- /* internal cogl format */ -- TEXTURE_FORMAT, - /* rowstride */ - width * 4, - /* data */ -- NULL, -- /* error */ - NULL); - } - else -diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c -index a2c05ca..46979bf 100644 ---- a/src/compositor/meta-window-actor.c -+++ b/src/compositor/meta-window-actor.c -@@ -2167,10 +2167,7 @@ build_and_scan_frame_mask (MetaWindowActor *self, - { - mask_texture = meta_texture_rectangle_new (tex_width, tex_height, - COGL_PIXEL_FORMAT_A_8, -- COGL_PIXEL_FORMAT_A_8, -- stride, -- mask_data, -- NULL /* error */); -+ stride, mask_data); - } - else - { -diff --git a/src/core/meta-cursor-tracker.c b/src/core/meta-cursor-tracker.c -index d1b365e..84f3185 100644 ---- a/src/core/meta-cursor-tracker.c -+++ b/src/core/meta-cursor-tracker.c -@@ -307,7 +307,6 @@ ensure_xfixes_cursor (MetaCursorTracker *tracker) - cursor_image->width, - cursor_image->height, - CLUTTER_CAIRO_FORMAT_ARGB32, -- COGL_PIXEL_FORMAT_ANY, - cursor_image->width * 4, /* stride */ - cursor_data, - NULL); --- -1.9.1 - diff -Nru mutter-3.10.4/debian/patches/01_Wcast-align.patch mutter-3.12.2/debian/patches/01_Wcast-align.patch --- mutter-3.10.4/debian/patches/01_Wcast-align.patch 2014-01-17 11:48:24.000000000 +1100 +++ mutter-3.12.2/debian/patches/01_Wcast-align.patch 2013-10-12 04:24:18.000000000 +1100 @@ -1,8 +1,8 @@ -Index: mutter-3.4.1/configure.ac +Index: mutter-3.8.4/configure.ac =================================================================== ---- mutter-3.4.1.orig/configure.ac 2012-05-04 21:43:52.826625535 +0200 -+++ mutter-3.4.1/configure.ac 2012-05-04 21:43:54.402625479 +0200 -@@ -446,11 +446,6 @@ +--- mutter-3.8.4.orig/configure.ac 2013-10-11 19:23:53.551350692 +0200 ++++ mutter-3.8.4/configure.ac 2013-10-11 19:23:53.551350692 +0200 +@@ -413,11 +413,6 @@ esac case " $CFLAGS " in diff -Nru mutter-3.10.4/debian/patches/04_ignore_shadow_and_padding.patch mutter-3.12.2/debian/patches/04_ignore_shadow_and_padding.patch --- mutter-3.10.4/debian/patches/04_ignore_shadow_and_padding.patch 2014-01-17 11:48:24.000000000 +1100 +++ mutter-3.12.2/debian/patches/04_ignore_shadow_and_padding.patch 2014-06-07 16:53:47.000000000 +1000 @@ -1,8 +1,10 @@ -diff --git a/src/ui/theme-parser.c b/src/ui/theme-parser.c -index 9063541..63a881f 100644 +--- + src/ui/theme-parser.c | 38 ++++++++++++++++++++++++++++++++++++-- + 1 file changed, 36 insertions(+), 2 deletions(-) + --- a/src/ui/theme-parser.c +++ b/src/ui/theme-parser.c -@@ -90,7 +90,9 @@ typedef enum +@@ -88,7 +88,9 @@ typedef enum STATE_WINDOW, /* things we don't use any more but we can still parse: */ STATE_MENU_ICON, @@ -13,7 +15,7 @@ } ParseState; typedef struct -@@ -1306,7 +1308,19 @@ parse_toplevel_element (GMarkupParseContext *context, +@@ -1308,7 +1310,19 @@ parse_toplevel_element (GMarkupParseCont */ push_state (info, STATE_FALLBACK); } @@ -34,7 +36,7 @@ { set_error (error, context, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, -@@ -3027,6 +3041,18 @@ parse_style_element (GMarkupParseContext *context, +@@ -3029,6 +3043,18 @@ parse_style_element (GMarkupParseContext push_state (info, STATE_BUTTON); } @@ -53,7 +55,7 @@ else { set_error (error, context, -@@ -3671,6 +3697,8 @@ start_element_handler (GMarkupParseContext *context, +@@ -3670,6 +3696,8 @@ start_element_handler (GMarkupParseConte _("Element <%s> is not allowed inside a <%s> element"), element_name, "fallback"); break; @@ -62,7 +64,7 @@ } } -@@ -3960,6 +3988,9 @@ end_element_handler (GMarkupParseContext *context, +@@ -3959,6 +3987,9 @@ end_element_handler (GMarkupParseContext pop_state (info); g_assert (peek_state (info) == STATE_THEME); break; @@ -72,7 +74,7 @@ } pop_required_version (info); -@@ -4165,6 +4196,9 @@ text_handler (GMarkupParseContext *context, +@@ -4164,6 +4195,9 @@ text_handler (GMarkupParseContext *conte case STATE_FALLBACK: NO_TEXT ("fallback"); break; diff -Nru mutter-3.10.4/debian/patches/git-dont-leave-focus-on-unmanage.patch mutter-3.12.2/debian/patches/git-dont-leave-focus-on-unmanage.patch --- mutter-3.10.4/debian/patches/git-dont-leave-focus-on-unmanage.patch 2014-06-03 13:02:04.000000000 +1000 +++ mutter-3.12.2/debian/patches/git-dont-leave-focus-on-unmanage.patch 1970-01-01 10:00:00.000000000 +1000 @@ -1,50 +0,0 @@ -From 5b377d3326bad8f58e73ffbc2b2b06351f96f7e5 Mon Sep 17 00:00:00 2001 -From: "Owen W. Taylor" -Date: Mon, 16 Dec 2013 12:20:02 -0500 -Subject: [PATCH] display: Don't leave focus on a window we are unmanaging when - sending WM_TAKE_FOCUS - -When we move focus elsewhere when unmanaging a window, we *need* to move -the focus, so if the target is globally active, move the focus to the -no-focus-window in anticipation that the focus will normally get moved -to the right window when the target window responds to WM_TAKE_FOCUS. - -If the window doesn't respond to WM_TAKE_FOCUS, then focus will be left -on the no-focus-window, but there's no way to distinguish whether the -app will respond or not. - -https://bugzilla.gnome.org/show_bug.cgi?id=711618 ---- - src/core/window.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -Index: mutter-3.10.4/src/core/window.c -=================================================================== ---- mutter-3.10.4.orig/src/core/window.c -+++ mutter-3.10.4/src/core/window.c -@@ -5955,6 +5955,25 @@ meta_window_focus (MetaWindow *window, - timestamp); - } - -+ if (!window->input) -+ { -+ /* The "Globally Active Input" window case, where the window -+ * doesn't want us to call XSetInputFocus on it, but does -+ * want us to send a WM_TAKE_FOCUS. -+ * -+ * Normally, we want to just leave the focus undisturbed until -+ * the window respnds to WM_TAKE_FOCUS, but if we're unmanaging -+ * the current focus window we *need* to move the focus away, so -+ * we focus the no_focus_window now (and set -+ * display->focus_window to that) before sending WM_TAKE_FOCUS. -+ */ -+ if (window->display->focus_window != NULL && -+ window->display->focus_window->unmanaging) -+ meta_display_focus_the_no_focus_window (window->display, -+ window->screen, -+ timestamp); -+ } -+ - meta_display_request_take_focus (window->display, - window, - timestamp); diff -Nru mutter-3.10.4/debian/patches/git-fix-crash-on-hotplug-001.patch mutter-3.12.2/debian/patches/git-fix-crash-on-hotplug-001.patch --- mutter-3.10.4/debian/patches/git-fix-crash-on-hotplug-001.patch 2014-05-17 07:39:19.000000000 +1000 +++ mutter-3.12.2/debian/patches/git-fix-crash-on-hotplug-001.patch 1970-01-01 10:00:00.000000000 +1000 @@ -1,53 +0,0 @@ -From aa3079b914df5e04eb5290ed25b71ddab7e62b77 Mon Sep 17 00:00:00 2001 -From: Giovanni Campagna -Date: Tue, 6 May 2014 19:51:13 +0200 -Subject: [PATCH] MetaMonitorConfig: don't keep a previous config with the - wrong outputs - -We can only apply a configuration if its outputs match the connected -ones, so discard the current configuration if the set of output changes -(for example for hotplug), otherwise we will crash trying to apply -the bogus previous configuration. - -https://bugzilla.gnome.org/show_bug.cgi?id=725637 ---- - src/core/monitor-config.c | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) - -diff --git a/src/core/monitor-config.c b/src/core/monitor-config.c -index a232ff4..035dcee 100644 ---- a/src/core/monitor-config.c -+++ b/src/core/monitor-config.c -@@ -877,7 +877,8 @@ apply_configuration (MetaMonitorConfig *self, - - /* Stored (persistent) configurations override the previous one always. - Also, we clear the previous configuration if the current one (which is -- about to become previous) is stored. -+ about to become previous) is stored, of if the current one has a -+ different outputs. - */ - if (stored || - (self->current && self->current_is_stored)) -@@ -888,7 +889,19 @@ apply_configuration (MetaMonitorConfig *self, - } - else - { -- self->previous = self->current; -+ /* Despite the name, config_equal() only checks the set of outputs, -+ not their modes -+ */ -+ if (self->current && config_equal (self->current, config)) -+ { -+ self->previous = self->current; -+ } -+ else -+ { -+ if (self->current) -+ config_free (self->current); -+ self->previous = NULL; -+ } - } - - self->current = config; --- -1.9.0 diff -Nru mutter-3.10.4/debian/patches/git-fix-crash-on-hotplug-002.patch mutter-3.12.2/debian/patches/git-fix-crash-on-hotplug-002.patch --- mutter-3.10.4/debian/patches/git-fix-crash-on-hotplug-002.patch 2014-05-17 07:39:19.000000000 +1000 +++ mutter-3.12.2/debian/patches/git-fix-crash-on-hotplug-002.patch 1970-01-01 10:00:00.000000000 +1000 @@ -1,72 +0,0 @@ -From fbd7408f0ef429893ddf4d81edd63ce383d1287a Mon Sep 17 00:00:00 2001 -From: Giovanni Campagna -Date: Tue, 6 May 2014 19:59:16 +0200 -Subject: [PATCH] MetaMonitorConfig: don't always restore the previous config - when opening the laptop lid - -Only do it if the current configuration was actually created -as the result of closing the laptop lid. - -https://bugzilla.gnome.org/show_bug.cgi?id=725637 ---- - src/core/monitor-config.c | 16 ++++++++++++++-- - 1 file changed, 14 insertions(+), 2 deletions(-) - -diff --git a/src/core/monitor-config.c b/src/core/monitor-config.c -index 035dcee..8b56b0a 100644 ---- a/src/core/monitor-config.c -+++ b/src/core/monitor-config.c -@@ -78,6 +78,7 @@ struct _MetaMonitorConfig { - GHashTable *configs; - MetaConfiguration *current; - gboolean current_is_stored; -+ gboolean current_is_for_laptop_lid; - MetaConfiguration *previous; - - GFile *file; -@@ -906,6 +907,10 @@ apply_configuration (MetaMonitorConfig *self, - - self->current = config; - self->current_is_stored = stored; -+ /* If true, we'll be overridden at the end of this call -+ inside turn_off_laptop_display() -+ */ -+ self->current_is_for_laptop_lid = FALSE; - - if (self->current == self->previous) - self->previous = NULL; -@@ -1022,8 +1027,14 @@ meta_monitor_config_apply_stored (MetaMonitorConfig *self, - if (self->lid_is_closed && - stored->n_outputs > 1 && - laptop_display_is_on (stored)) -- return apply_configuration (self, make_laptop_lid_config (stored), -+ { -+ gboolean ok; -+ -+ ok = apply_configuration (self, make_laptop_lid_config (stored), - manager, FALSE); -+ self->current_is_for_laptop_lid = TRUE; -+ return ok; -+ } - else - return apply_configuration (self, stored, manager, TRUE); - } -@@ -1370,6 +1381,7 @@ turn_off_laptop_display (MetaMonitorConfig *self, - - new = make_laptop_lid_config (self->current); - apply_configuration (self, new, manager, FALSE); -+ self->current_is_for_laptop_lid = TRUE; - } - - static void -@@ -1389,7 +1401,7 @@ power_client_changed_cb (UpClient *client, - - if (is_closed) - turn_off_laptop_display (self, manager); -- else -+ else if (self->current_is_for_laptop_lid) - meta_monitor_config_restore_previous (self, manager); - } - } --- -1.9.0 diff -Nru mutter-3.10.4/debian/patches/git_ignore_error_when_settings_primary.patch mutter-3.12.2/debian/patches/git_ignore_error_when_settings_primary.patch --- mutter-3.10.4/debian/patches/git_ignore_error_when_settings_primary.patch 2014-03-19 08:14:50.000000000 +1100 +++ mutter-3.12.2/debian/patches/git_ignore_error_when_settings_primary.patch 1970-01-01 10:00:00.000000000 +1000 @@ -1,103 +0,0 @@ -From fff1f8731d3933d197c1d8730e761efcbc55445d Mon Sep 17 00:00:00 2001 -From: Alberto Milone -Date: Tue, 3 Dec 2013 18:16:22 +0100 -Subject: [PATCH] xrandr: ignore the error if setting the primary output fails - -Some drivers which support RandR 1.4 may not support setting -or getting the primary output, therefore mutter should trap -and ignore any relevant errors. - -The modesetting driver exposes this problem when used in -combination with the nvidia binary driver using RandR 1.4 -offloading. - -Also use a local display variable instead of calling -meta_get_display () every time. ---- - src/core/monitor-xrandr.c | 17 +++++++++++------ - 1 file changed, 11 insertions(+), 6 deletions(-) - -diff --git a/src/core/monitor-xrandr.c b/src/core/monitor-xrandr.c -index 1265e20..05888b6 100644 ---- a/src/core/monitor-xrandr.c -+++ b/src/core/monitor-xrandr.c -@@ -453,8 +453,10 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager) - XRRFreeCrtcInfo (crtc); - } - -+ meta_error_trap_push (meta_get_display ()); - primary_output = XRRGetOutputPrimary (manager_xrandr->xdisplay, - DefaultRootWindow (manager_xrandr->xdisplay)); -+ meta_error_trap_pop (meta_get_display ()); - - n_actual_outputs = 0; - for (i = 0; i < (unsigned)resources->noutput; i++) -@@ -693,10 +695,11 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager, - unsigned int n_outputs) - { - MetaMonitorManagerXrandr *manager_xrandr = META_MONITOR_MANAGER_XRANDR (manager); -+ MetaDisplay *display = meta_get_display (); - unsigned i; - int width, height, width_mm, height_mm; - -- meta_display_grab (meta_get_display ()); -+ meta_display_grab (display); - - /* First compute the new size of the screen (framebuffer) */ - width = 0; height = 0; -@@ -790,10 +793,10 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager, - */ - width_mm = (width / DPI_FALLBACK) * 25.4 + 0.5; - height_mm = (height / DPI_FALLBACK) * 25.4 + 0.5; -- meta_error_trap_push (meta_get_display ()); -+ meta_error_trap_push (display); - XRRSetScreenSize (manager_xrandr->xdisplay, DefaultRootWindow (manager_xrandr->xdisplay), - width, height, width_mm, height_mm); -- meta_error_trap_pop (meta_get_display ()); -+ meta_error_trap_pop (display); - - for (i = 0; i < n_crtcs; i++) - { -@@ -850,7 +853,7 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager, - goto next; - } - -- meta_error_trap_push (meta_get_display ()); -+ meta_error_trap_push (display); - ok = XRRSetCrtcConfig (manager_xrandr->xdisplay, - manager_xrandr->resources, - (XID)crtc->crtc_id, -@@ -859,7 +862,7 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager, - (XID)mode->mode_id, - wl_transform_to_xrandr (crtc_info->transform), - outputs, n_outputs); -- meta_error_trap_pop (meta_get_display ()); -+ meta_error_trap_pop (display); - - if (ok != Success) - { -@@ -900,9 +903,11 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager, - - if (output_info->is_primary) - { -+ meta_error_trap_push (display); - XRRSetOutputPrimary (manager_xrandr->xdisplay, - DefaultRootWindow (manager_xrandr->xdisplay), - (XID)output_info->output->output_id); -+ meta_error_trap_pop (display); - } - - output_set_presentation_xrandr (manager_xrandr, -@@ -928,7 +933,7 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager, - output->is_primary = FALSE; - } - -- meta_display_ungrab (meta_get_display ()); -+ meta_display_ungrab (display); - } - - static void --- -1.9.0 - - diff -Nru mutter-3.10.4/debian/patches/prevent-double-lock-deadlock.patch mutter-3.12.2/debian/patches/prevent-double-lock-deadlock.patch --- mutter-3.10.4/debian/patches/prevent-double-lock-deadlock.patch 1970-01-01 10:00:00.000000000 +1000 +++ mutter-3.12.2/debian/patches/prevent-double-lock-deadlock.patch 2013-11-05 20:56:28.000000000 +1100 @@ -0,0 +1,15 @@ +--- a/src/core/window.c ++++ b/src/core/window.c +@@ -9566,7 +9566,11 @@ + * GDK will handle later these events, and eventually + * free the cookie data itself. + */ +- XGetEventData (display, &ev->xcookie); ++ /* We do NOT call XGetEventData (display, &ev->xcookie); here ++ because we're not supposed to call X functions from within a predicate. ++ XGetEventData has a lock, which fails as XCheckIfEvent has ++ already locked. */ ++ _XFetchEventCookie(display, &ev->xcookie); + xev = (XIEvent *) ev->xcookie.data; + + if (xev->evtype != XI_Motion) diff -Nru mutter-3.10.4/debian/patches/revert_upower_api_changes.patch mutter-3.12.2/debian/patches/revert_upower_api_changes.patch --- mutter-3.10.4/debian/patches/revert_upower_api_changes.patch 1970-01-01 10:00:00.000000000 +1000 +++ mutter-3.12.2/debian/patches/revert_upower_api_changes.patch 2014-06-07 09:38:16.000000000 +1000 @@ -0,0 +1,61 @@ +From b095e0a39df3837d3a03c9832803fafd742a8171 Mon Sep 17 00:00:00 2001 +From: Tim Lunn +Date: Thu, 14 Nov 2013 21:10:46 +1100 +Subject: [PATCH] Revert "MonitorConfig: Use new UPower API" + +This reverts commit a9a10aaa2070d726c255b035f4664079373f733a. +--- + configure.ac | 2 +- + src/core/monitor-config.c | 12 +++++------- + 2 files changed, 6 insertions(+), 8 deletions(-) + +Index: mutter-3.12.2/configure.ac +=================================================================== +--- mutter-3.12.2.orig/configure.ac ++++ mutter-3.12.2/configure.ac +@@ -77,7 +77,7 @@ MUTTER_PC_MODULES=" + xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0 + $CLUTTER_PACKAGE >= 1.15.90 + cogl-1.0 >= 1.17.1 +- upower-glib >= 0.99.0 ++ upower-glib >= 0.9.11 + gnome-desktop-3.0 + " + +Index: mutter-3.12.2/src/core/monitor-config.c +=================================================================== +--- mutter-3.12.2.orig/src/core/monitor-config.c ++++ mutter-3.12.2/src/core/monitor-config.c +@@ -98,9 +98,8 @@ static gboolean meta_monitor_config_assi + GPtrArray *crtcs, + GPtrArray *outputs); + +-static void power_client_changed_cb (UpClient *client, +- GParamSpec *pspec, +- gpointer user_data); ++static void power_client_changed_cb (UpClient *client, ++ gpointer user_data); + + static void + free_output_key (MetaOutputKey *key) +@@ -232,7 +231,7 @@ meta_monitor_config_init (MetaMonitorCon + self->up_client = up_client_new (); + self->lid_is_closed = up_client_get_lid_is_closed (self->up_client); + +- g_signal_connect_object (self->up_client, "notify::lid-is-closed", ++ g_signal_connect_object (self->up_client, "changed", + G_CALLBACK (power_client_changed_cb), self, 0); + } + +@@ -1386,9 +1385,8 @@ turn_off_laptop_display (MetaMonitorConf + } + + static void +-power_client_changed_cb (UpClient *client, +- GParamSpec *pspec, +- gpointer user_data) ++power_client_changed_cb (UpClient *client, ++ gpointer user_data) + { + MetaMonitorManager *manager = meta_monitor_manager_get (); + MetaMonitorConfig *self = user_data; diff -Nru mutter-3.10.4/debian/patches/series mutter-3.12.2/debian/patches/series --- mutter-3.10.4/debian/patches/series 2014-06-03 13:02:48.000000000 +1000 +++ mutter-3.12.2/debian/patches/series 2014-06-07 17:02:28.000000000 +1000 @@ -1,7 +1,4 @@ 01_Wcast-align.patch +prevent-double-lock-deadlock.patch 04_ignore_shadow_and_padding.patch -git_ignore_error_when_settings_primary.patch -0001-Update-for-Cogl-API-breaks.patch -git-fix-crash-on-hotplug-001.patch -git-fix-crash-on-hotplug-002.patch -git-dont-leave-focus-on-unmanage.patch +revert_upower_api_changes.patch diff -Nru mutter-3.10.4/debian/rules mutter-3.12.2/debian/rules --- mutter-3.10.4/debian/rules 2014-01-17 11:48:32.000000000 +1100 +++ mutter-3.12.2/debian/rules 2014-04-27 04:25:51.000000000 +1000 @@ -11,7 +11,6 @@ DEB_CONFIGURE_EXTRA_FLAGS += \ --enable-startup-notification=yes \ --enable-compile-warnings=yes -DEB_DH_MAKESHLIBS_ARGS_libmutter0c += -V'libmutter0c (>= $(DEB_GNOME_VERSION)), libmutter0c (<< $(DEB_GNOME_NEXTVERSION))' -- -c0 DEB_INSTALL_DOCS_mutter += doc/theme-format.txt DEB_DH_GIREPOSITORY_ARGS_ALL := /usr/lib/mutter