[arch-commits] Commit in muffin/trunk (PKGBUILD unredirect-fixes.patch)
Balló György
bgyorgy at archlinux.org
Sat Oct 15 10:02:18 UTC 2016
Date: Saturday, October 15, 2016 @ 10:02:17
Author: bgyorgy
Revision: 192293
upgpkg: muffin 3.0.5-2
Unredirect fixes (FS#50719)
Added:
muffin/trunk/unredirect-fixes.patch
Modified:
muffin/trunk/PKGBUILD
------------------------+
PKGBUILD | 11 ++-
unredirect-fixes.patch | 143 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 151 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2016-10-15 09:27:23 UTC (rev 192292)
+++ PKGBUILD 2016-10-15 10:02:17 UTC (rev 192293)
@@ -5,7 +5,7 @@
pkgname=muffin
pkgver=3.0.5
-pkgrel=1
+pkgrel=2
pkgdesc="Cinnamon window manager based on Mutter"
arch=('i686' 'x86_64')
url="https://github.com/linuxmint/muffin"
@@ -14,12 +14,17 @@
'startup-notification' 'zenity' 'dconf')
makedepends=('intltool' 'gnome-doc-utils' 'gnome-common' 'gobject-introspection' 'gtk-doc')
options=('!emptydirs')
-source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/muffin/archive/$pkgver.tar.gz")
-sha256sums=('11c27abedad6952aaa446d37ad23e910c3c51dc0dd8d29298cfae2c3ad917e64')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/muffin/archive/$pkgver.tar.gz"
+ "unredirect-fixes.patch")
+sha256sums=('11c27abedad6952aaa446d37ad23e910c3c51dc0dd8d29298cfae2c3ad917e64'
+ '1b210245d45ea01324ce6055df2deb5e925c3c77d871fca3e9b86c9d099322f1')
prepare() {
cd ${pkgname}-${pkgver}
+ # Unredirect fixes
+ # https://github.com/linuxmint/muffin/pull/250
+ patch -Np1 -i ../unredirect-fixes.patch
}
build() {
Added: unredirect-fixes.patch
===================================================================
--- unredirect-fixes.patch (rev 0)
+++ unredirect-fixes.patch 2016-10-15 10:02:17 UTC (rev 192293)
@@ -0,0 +1,143 @@
+From 837aeb1a10cf2fe57dce791f7b733c2db723b5d9 Mon Sep 17 00:00:00 2001
+From: itzexor <itzexor at gmail.com>
+Date: Sun, 8 May 2016 00:16:22 -0700
+Subject: [PATCH 1/4] meta-window-actor: fix unredirect heuristic Damage
+ coordinates are relative to the drawable not to the screen. So we have to
+ check whether x and y are 0 and not window_rect.x/y otherwise the herustic
+ will never trigger for windows on monitors whos x and y are not 0.
+
+https://git.gnome.org/browse/mutter/commit/?id=cd32e4a
+---
+ src/compositor/meta-window-actor.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index c5d4485..1d4fea8 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -2113,8 +2113,8 @@ meta_window_actor_process_damage (MetaWindowActor *self,
+ MetaRectangle window_rect;
+ meta_window_get_outer_rect (priv->window, &window_rect);
+
+- if (window_rect.x == event->area.x &&
+- window_rect.y == event->area.y &&
++ if (event->area.x == 0 &&
++ event->area.y == 0 &&
+ window_rect.width == event->area.width &&
+ window_rect.height == event->area.height)
+ priv->full_damage_frames_count++;
+
+From 68b0df9024b3366bd5012a0ca056cdd69365222a Mon Sep 17 00:00:00 2001
+From: itzexor <itzexor at gmail.com>
+Date: Sat, 14 May 2016 14:36:42 -0700
+Subject: [PATCH 2/4] meta-window-actor: Consider needs_destroy in
+ is_destroyed() According to the documentation, the method returns "whether
+ the X window that the actor was displaying has been destroyed" - that is very
+ much true when we delay the actual actor destruction for a destroy animation,
+ so update the method accordingly.
+
+https://git.gnome.org/browse/mutter/commit/?id=d50f8af
+---
+ src/compositor/meta-window-actor.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index 1d4fea8..286127f 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -925,7 +925,7 @@ meta_window_actor_get_texture (MetaWindowActor *self)
+ gboolean
+ meta_window_actor_is_destroyed (MetaWindowActor *self)
+ {
+- return self->priv->disposed;
++ return self->priv->disposed || self->priv->needs_destroy;
+ }
+
+ gboolean
+
+From 39ab0ef2447d12e936d4133aee462e7888d3a050 Mon Sep 17 00:00:00 2001
+From: itzexor <itzexor at gmail.com>
+Date: Sat, 14 May 2016 15:10:37 -0700
+Subject: [PATCH 3/4] meta-window-actor: Do not request unredirection when
+ destroyed WindowActors can outlive their corresponding window to animate
+ unmap. Unredirecting the actor does not make sense in that case, so make sure
+ to not request it.
+
+https://git.gnome.org/browse/mutter/commit/?id=6e25c37
+---
+ src/compositor/meta-window-actor.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index 286127f..0aa5144 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -1336,6 +1336,9 @@ meta_window_actor_should_unredirect (MetaWindowActor *self)
+ MetaWindow *metaWindow = meta_window_actor_get_meta_window (self);
+ MetaWindowActorPrivate *priv = self->priv;
+
++ if (meta_window_actor_is_destroyed (self))
++ return FALSE;
++
+ if (meta_window_requested_dont_bypass_compositor (metaWindow))
+ return FALSE;
+
+
+From 3dd425e8cf8719e14613a44165bf2b73f9a6795a Mon Sep 17 00:00:00 2001
+From: itzexor <itzexor at gmail.com>
+Date: Sat, 14 May 2016 15:19:30 -0700
+Subject: [PATCH 4/4] window-actor: Skip frame-sync when the corresponding
+ window is gone https://git.gnome.org/browse/mutter/commit/?id=8d53ae8
+
+---
+ src/compositor/meta-window-actor.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index 0aa5144..9a81fac 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -1063,7 +1063,12 @@ meta_window_actor_queue_frame_drawn (MetaWindowActor *self,
+ gboolean no_delay_frame)
+ {
+ MetaWindowActorPrivate *priv = self->priv;
+- FrameData *frame = g_slice_new0 (FrameData);
++ FrameData *frame;
++
++ if (meta_window_actor_is_destroyed (self))
++ return;
++
++ frame = g_slice_new0 (FrameData);
+
+ priv->needs_frame_drawn = TRUE;
+
+@@ -2447,6 +2452,9 @@ meta_window_actor_pre_paint (MetaWindowActor *self)
+ MetaWindowActorPrivate *priv = self->priv;
+ GList *l;
+
++ if (meta_window_actor_is_destroyed (self))
++ return;
++
+ meta_window_actor_handle_updates (self);
+
+ for (l = priv->frames; l != NULL; l = l->next)
+@@ -2468,6 +2476,9 @@ meta_window_actor_post_paint (MetaWindowActor *self)
+
+ priv->repaint_scheduled = FALSE;
+
++ if (meta_window_actor_is_destroyed (self))
++ return;
++
+ if (priv->needs_frame_drawn)
+ {
+ MetaScreen *screen = priv->screen;
+@@ -2556,6 +2567,9 @@ meta_window_actor_frame_complete (MetaWindowActor *self,
+ MetaWindowActorPrivate *priv = self->priv;
+ GList *l;
+
++ if (meta_window_actor_is_destroyed (self))
++ return;
++
+ for (l = priv->frames; l;)
+ {
+ GList *l_next = l->next;
More information about the arch-commits
mailing list