From d0bab8955b375add9133cbe67fe1aa6a31be6d9249da3006e84adc755c81b5a4 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 22 Jan 2013 09:15:51 +0000 Subject: [PATCH] Accepting request 149497 from home:Zaitor:branches:GNOME:Factory Add patch to fix bug, Stop windows from jumping spontaneously from one monitor to another. Wanted for 12.3 OBS-URL: https://build.opensuse.org/request/show/149497 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=107 --- mutter-stop-jumping-windows.patch | 37 +++++++++++++++++++++++++++++++ mutter.changes | 7 ++++++ mutter.spec | 5 ++++- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 mutter-stop-jumping-windows.patch diff --git a/mutter-stop-jumping-windows.patch b/mutter-stop-jumping-windows.patch new file mode 100644 index 0000000..a43d765 --- /dev/null +++ b/mutter-stop-jumping-windows.patch @@ -0,0 +1,37 @@ +From 0dee738a43e4fb4c3d5de5e3a55a4033faa9d3fa Mon Sep 17 00:00:00 2001 +From: Alban Crequy +Date: Fri, 23 Nov 2012 00:06:22 +0000 +Subject: Initialize window->user_rect in the initial placement + +The window positioning is delayed in idle_move_resize() in case the application +resizes/maximizes its window quickly after its creation. The delayed +positioning uses window->user_rect because of bug 426519 comment 3 (see +meta_window_move_resize_now()). + +user_rect was not set in the initial positioning, causing the delayed +positioning unable to know which monitor we use for this window. As a +consequence, the window could jump spontaneously from one monitor to another. + +With this patch, the window does not jump anymore. + +https://bugzilla.gnome.org/show_bug.cgi?id=556696 +--- +diff --git a/src/core/constraints.c b/src/core/constraints.c +index 2857f67..606baea 100644 +--- a/src/core/constraints.c ++++ b/src/core/constraints.c +@@ -571,6 +571,11 @@ place_window_if_needed(MetaWindow *window, + .083 * info->work_area_monitor.height; + } + ++ /* idle_move_resize() uses the user_rect, so make sure it uses the ++ * placed coordinates (bug #556696). ++ */ ++ window->user_rect = info->current; ++ + if (window->maximize_horizontally_after_placement || + window->maximize_vertically_after_placement) + meta_window_maximize_internal (window, +-- +cgit v0.9.0.2 + diff --git a/mutter.changes b/mutter.changes index 9d854b6..46679c7 100644 --- a/mutter.changes +++ b/mutter.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jan 21 23:43:46 UTC 2013 - zaitor@opensuse.org + +- Add mutter-stop-jumping-windows.patch, windows might in some + cases jump from one monitor to an other, this patch fixes this. + (bgo#556696). + ------------------------------------------------------------------- Tue Nov 13 12:12:34 UTC 2012 - dimstar@opensuse.org diff --git a/mutter.spec b/mutter.spec index 1762473..d2f4fa0 100644 --- a/mutter.spec +++ b/mutter.spec @@ -1,7 +1,7 @@ # # spec file for package mutter # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,6 +24,8 @@ License: GPL-2.0+ Group: System/GUI/GNOME Url: http://www.gnome.org Source: http://download.gnome.org/sources/mutter/3.6/%{name}-%{version}.tar.xz +# PATCH-FIX-UPSTREAM mutter-stop-jumping-windows.patch bgo#556696 zaitor@opensuse.org -- Stop windows from jumping spontaneously from one monitor to another. +Patch0: mutter-stop-jumping-windows.patch BuildRequires: fdupes BuildRequires: gobject-introspection-devel >= 0.9.5 BuildRequires: intltool @@ -122,6 +124,7 @@ to develop applications that require these. %lang_package %prep %setup -q +%patch0 -p1 translation-update-upstream %if 0%{?BUILD_FROM_VCS}