Date: Saturday, October 17, 2015 @ 19:36:02 Author: heftig Revision: 249466
fix fs issues Added: gnome-shell/trunk/fs1.patch gnome-shell/trunk/fs2.patch Modified: gnome-shell/trunk/PKGBUILD -----------+ PKGBUILD | 12 +++++++++--- fs1.patch | 44 ++++++++++++++++++++++++++++++++++++++++++++ fs2.patch | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-10-17 15:59:23 UTC (rev 249465) +++ PKGBUILD 2015-10-17 17:36:02 UTC (rev 249466) @@ -4,7 +4,7 @@ pkgname=gnome-shell pkgver=3.18.1 -pkgrel=1 +pkgrel=2 pkgdesc="The next generation GNOME Shell" arch=(i686 x86_64) url="http://live.gnome.org/GnomeShell" @@ -19,13 +19,19 @@ install=gnome-shell.install groups=(gnome) source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz - nm-libexecdir.patch) + nm-libexecdir.patch fs1.patch fs2.patch) sha256sums=('14a15215b3e29a25b94f69c58a6565e3a8cb2259b1ca242b906af78172bf3845' - 'e5bb10ad2e5c3e0fde3d05babd1bfdda701e553e02d493f7e54cb7832ce7e607') + 'e5bb10ad2e5c3e0fde3d05babd1bfdda701e553e02d493f7e54cb7832ce7e607' + '0d2f143362ff47bfd3dcbb94d903b51b9a998f2ff97c6320f0e3fe3599089e34' + '19f39002be34f035c7f5f8f20bad50ab38fb8ff0f023e91e832feecc54fcdc60') prepare() { cd $pkgname-$pkgver + # Fullscreen animation issues + patch -Np1 -i ../fs1.patch + patch -Np1 -i ../fs2.patch + # FS#30747 FS#32730 Problems due to libexecdir different from NM patch -Np1 -i ../nm-libexecdir.patch } Added: fs1.patch =================================================================== --- fs1.patch (rev 0) +++ fs1.patch 2015-10-17 17:36:02 UTC (rev 249466) @@ -0,0 +1,44 @@ +From ab2ca17b766556eec7c5c47c4d75ef6ff45a31a7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuell...@gnome.org> +Date: Fri, 16 Oct 2015 15:36:33 +0200 +Subject: windowManager: Fix fullscreen animations on dualscreen + +The translation should describe the difference between the fullscreened +and unfullscreened position of the window - however we are currently +assuming a fullscreen position of (0, 0) instead of the monitor's origin, +which causes glitches on dualscreen setups. + +https://bugzilla.gnome.org/show_bug.cgi?id=756697 +--- + js/ui/windowManager.js | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js +index 2ee99e3..c8996d8 100644 +--- a/js/ui/windowManager.js ++++ b/js/ui/windowManager.js +@@ -1235,15 +1235,17 @@ const WindowManager = new Lang.Class({ + }, + + _fullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) { +- actor.translation_x = oldFrameRect.x; +- actor.translation_y = oldFrameRect.y; ++ let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()]; ++ actor.translation_x = oldFrameRect.x - monitor.x; ++ actor.translation_y = oldFrameRect.y - monitor.y; + this._fullscreenAnimation(shellwm, actor, oldFrameRect); + }, + + _unfullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) { + let targetRect = actor.meta_window.get_frame_rect(); +- actor.translation_x = -targetRect.x; +- actor.translation_y = -targetRect.y; ++ let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()]; ++ actor.translation_x = -(targetRect.x - monitor.x); ++ actor.translation_y = -(targetRect.y - monitor.y); + this._fullscreenAnimation(shellwm, actor, oldFrameRect); + }, + +-- +cgit v0.11.2 + Added: fs2.patch =================================================================== --- fs2.patch (rev 0) +++ fs2.patch 2015-10-17 17:36:02 UTC (rev 249466) @@ -0,0 +1,51 @@ +From 8ae0c69ccf9dede2770ca8e74945e29b8c528aa5 Mon Sep 17 00:00:00 2001 +From: Cosimo Cecchi <cosi...@gnome.org> +Date: Fri, 16 Oct 2015 13:45:09 -0700 +Subject: windowManager: fix fullscreen clone being left around + +If we get another effect on the same actor, we should make sure to +remove the clone through the "overwrite" methods provided by Tweener, or +there will be a race that might end up with a stray clone being left +around. + +https://bugzilla.gnome.org/show_bug.cgi?id=756714 +--- + js/ui/windowManager.js | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js +index c8996d8..32b8c0f 100644 +--- a/js/ui/windowManager.js ++++ b/js/ui/windowManager.js +@@ -1296,7 +1296,10 @@ const WindowManager = new Lang.Class({ + transition: 'easeOutQuad', + onComplete: this._sizeChangeWindowDone, + onCompleteScope: this, +- onCompleteParams: [shellwm, actor] ++ onCompleteParams: [shellwm, actor], ++ onOverwrite: this._sizeChangeWindowOverwritten, ++ onOverwriteScope: this, ++ onOverwriteParams: [shellwm, actor] + }); + + // Now unfreeze actor updates, to get it to the new size. +@@ -1321,6 +1324,16 @@ const WindowManager = new Lang.Class({ + } + }, + ++ _sizeChangeWindowOverwritten: function(shellwm, actor) { ++ if (this._removeEffect(this._resizing, actor)) { ++ let actorClone = actor.__fullscreenClone; ++ if (actorClone) { ++ actorClone.destroy(); ++ delete actor.__fullscreenClone; ++ } ++ } ++ }, ++ + _hasAttachedDialogs: function(window, ignoreWindow) { + var count = 0; + window.foreach_transient(function(win) { +-- +cgit v0.11.2 +