[arch-commits] Commit in metacity/trunk (PKGBUILD fix-crasher.patch)
Balló György
bgyorgy at archlinux.org
Sun Aug 16 17:39:48 UTC 2015
Date: Sunday, August 16, 2015 @ 19:39:48
Author: bgyorgy
Revision: 138426
upgpkg: metacity 3.16.1-2
Fix crasher
Added:
metacity/trunk/fix-crasher.patch
Modified:
metacity/trunk/PKGBUILD
-------------------+
PKGBUILD | 15 ++++++-
fix-crasher.patch | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 115 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-08-16 16:47:17 UTC (rev 138425)
+++ PKGBUILD 2015-08-16 17:39:48 UTC (rev 138426)
@@ -4,7 +4,7 @@
pkgname=metacity
pkgver=3.16.1
-pkgrel=1
+pkgrel=2
pkgdesc="Legacy GNOME window manager"
arch=('i686' 'x86_64')
license=('GPL')
@@ -12,9 +12,18 @@
makedepends=('intltool' 'itstool')
url="https://wiki.gnome.org/Projects/Metacity"
install=metacity.install
-source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('7a2e4ab7e19bfa5e6fc75d80d66e79f7965b5a51435c9675b0e895179d256f86')
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+ fix-crasher.patch)
+sha256sums=('7a2e4ab7e19bfa5e6fc75d80d66e79f7965b5a51435c9675b0e895179d256f86'
+ 'eb2a6043ff1a2fc0207a65c2bee18ada509108354379ddc12ef04566cfd7a524')
+prepare() {
+ cd $pkgname-$pkgver
+
+ # Fix crasher
+ patch -Np1 -i ../fix-crasher.patch
+}
+
build() {
cd $pkgname-$pkgver
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \
Added: fix-crasher.patch
===================================================================
--- fix-crasher.patch (rev 0)
+++ fix-crasher.patch 2015-08-16 17:39:48 UTC (rev 138426)
@@ -0,0 +1,103 @@
+From a9f28dbc26f5211ef08889109db3dc8c7ba76aca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <alberts.muktupavels at gmail.com>
+Date: Tue, 7 Jul 2015 13:49:30 +0300
+Subject: compositor: fix possible crash closing/destroying window
+
+Partially restore call to destroy_win in compositor when calling
+meta_window_free. This is needed to ensure that we never call
+meta_window_get_frame_bounds while windows is destroying.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751833
+
+diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
+index 11ed73b..a45fdc9 100644
+--- a/src/compositor/compositor-private.h
++++ b/src/compositor/compositor-private.h
+@@ -48,6 +48,9 @@ struct _MetaCompositor
+ MetaScreen *screen,
+ MetaWindow *window);
+
++ void (*free_window) (MetaCompositor *compositor,
++ MetaWindow *window);
++
+ void (*maximize_window) (MetaCompositor *compositor,
+ MetaWindow *window);
+ void (*unmaximize_window) (MetaCompositor *compositor,
+diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c
+index 3bff70a..fbae9a7 100644
+--- a/src/compositor/compositor-xrender.c
++++ b/src/compositor/compositor-xrender.c
+@@ -2799,23 +2799,38 @@ xrender_end_move (MetaCompositor *compositor,
+ #ifdef HAVE_COMPOSITE_EXTENSIONS
+ #endif
+ }
++#endif /* 0 */
+
+ static void
+ xrender_free_window (MetaCompositor *compositor,
+ MetaWindow *window)
+ {
+ #ifdef HAVE_COMPOSITE_EXTENSIONS
+- /* FIXME: When an undecorated window is hidden this is called,
+- but the window does not get readded if it is subsequentally shown again
+- See http://bugzilla.gnome.org/show_bug.cgi?id=504876
+-
+- I don't *think* theres any need for this call anyway, leaving it out
+- does not seem to cause any side effects so far, but I should check with
+- someone who understands more. */
+- /* destroy_win (compositor->display, window->xwindow, FALSE); */
++ MetaCompositorXRender *xrc;
++ MetaFrame *frame;
++ Window xwindow;
++
++ xrc = (MetaCompositorXRender *) compositor;
++ frame = meta_window_get_frame (window);
++ xwindow = None;
++
++ if (frame)
++ {
++ xwindow = meta_frame_get_xwindow (frame);
++ }
++ else
++ {
++ /* FIXME: When an undecorated window is hidden this is called, but the
++ * window does not get readded if it is subsequentally shown again. See:
++ * http://bugzilla.gnome.org/show_bug.cgi?id=504876
++ */
++ /* xwindow = meta_window_get_xwindow (window); */
++ }
++
++ if (xwindow != None)
++ destroy_win (xrc->display, xwindow, FALSE);
+ #endif
+ }
+-#endif /* 0 */
+
+ static void
+ xrender_process_event (MetaCompositor *compositor,
+@@ -3095,6 +3110,7 @@ static MetaCompositor comp_info = {
+ xrender_process_event,
+ xrender_get_window_pixmap,
+ xrender_set_active_window,
++ xrender_free_window,
+ xrender_maximize_window,
+ xrender_unmaximize_window,
+ };
+diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
+index 0dcf2b2..1fea362 100644
+--- a/src/compositor/compositor.c
++++ b/src/compositor/compositor.c
+@@ -154,6 +154,10 @@ void meta_compositor_end_move (MetaCompositor *compositor,
+ void meta_compositor_free_window (MetaCompositor *compositor,
+ MetaWindow *window)
+ {
++#ifdef HAVE_COMPOSITE_EXTENSIONS
++ if (compositor && compositor->free_window)
++ compositor->free_window (compositor, window);
++#endif
+ }
+
+ void
+--
+cgit v0.10.2
+
More information about the arch-commits
mailing list