[arch-commits] Commit in gtk3/trunk (3 files)
Evangelos Foutras
foutrelis at archlinux.org
Sun Apr 12 20:49:25 UTC 2015
Date: Sunday, April 12, 2015 @ 22:49:24
Author: foutrelis
Revision: 236320
upgpkg: gtk3 3.16.1-2
- Revert commit that causes nm-applet to fail to load (FS#44504).
- Fix transparency setting for status icons on Xfce.
Added:
gtk3/trunk/0001-Revert-image-Optimize-non-resize-changes.patch
gtk3/trunk/0001-x11-Relax-requirements-for-setting-ParentRelative.patch
Modified:
gtk3/trunk/PKGBUILD
--------------------------------------------------------------+
0001-Revert-image-Optimize-non-resize-changes.patch | 233 ++++++++++
0001-x11-Relax-requirements-for-setting-ParentRelative.patch | 42 +
PKGBUILD | 19
3 files changed, 291 insertions(+), 3 deletions(-)
Added: 0001-Revert-image-Optimize-non-resize-changes.patch
===================================================================
--- 0001-Revert-image-Optimize-non-resize-changes.patch (rev 0)
+++ 0001-Revert-image-Optimize-non-resize-changes.patch 2015-04-12 20:49:24 UTC (rev 236320)
@@ -0,0 +1,233 @@
+From 7963f689296ad06dff0e0d426bd9324de1dec7aa Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Wed, 8 Apr 2015 14:18:08 -0400
+Subject: [PATCH] Revert "image: Optimize non-resize changes"
+
+This reverts commit fef7d65685a3a45a47f968cab6b5e5150323f606.
+
+We're still seeing regressions from this, see
+http://bugzilla.redhat.com/show_bug.cgi?id=1208183
+---
+ gtk/gtkimage.c | 107 +++++++++------------------------------------------------
+ 1 file changed, 17 insertions(+), 90 deletions(-)
+
+diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
+index d501aef..5763f06 100644
+--- a/gtk/gtkimage.c
++++ b/gtk/gtkimage.c
+@@ -155,9 +155,6 @@ static void gtk_image_size_allocate (GtkWidget *widget,
+ static void gtk_image_unmap (GtkWidget *widget);
+ static void gtk_image_realize (GtkWidget *widget);
+ static void gtk_image_unrealize (GtkWidget *widget);
+-static void gtk_image_get_preferred_size (GtkImage *image,
+- gint *width_out,
+- gint *height_out);
+ static void gtk_image_get_preferred_width (GtkWidget *widget,
+ gint *minimum,
+ gint *natural);
+@@ -937,8 +934,8 @@ gtk_image_set_from_file (GtkImage *image,
+ priv = image->priv;
+
+ g_object_freeze_notify (G_OBJECT (image));
+-
+- gtk_image_reset (image);
++
++ gtk_image_clear (image);
+
+ if (filename == NULL)
+ {
+@@ -951,7 +948,9 @@ gtk_image_set_from_file (GtkImage *image,
+
+ if (anim == NULL)
+ {
+- gtk_image_set_from_icon_name (image, "image-missing", DEFAULT_ICON_SIZE);
++ gtk_image_set_from_icon_name (image,
++ "image-missing",
++ DEFAULT_ICON_SIZE);
+ g_object_thaw_notify (G_OBJECT (image));
+ return;
+ }
+@@ -972,21 +971,7 @@ gtk_image_set_from_file (GtkImage *image,
+ g_object_unref (anim);
+
+ priv->filename = g_strdup (filename);
+-
+- if (gtk_widget_get_visible (GTK_WIDGET (image)))
+- {
+- gint width, height;
+-
+- gtk_image_get_preferred_size (image, &width, &height);
+- if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
+- height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
+- gtk_widget_queue_resize (GTK_WIDGET (image));
+- else
+- gtk_widget_queue_draw (GTK_WIDGET (image));
+- }
+-
+- g_object_notify (G_OBJECT (image), "file");
+-
++
+ g_object_thaw_notify (G_OBJECT (image));
+ }
+
+@@ -1023,7 +1008,9 @@ gtk_image_set_from_resource (GtkImage *image,
+
+ if (animation == NULL)
+ {
+- gtk_image_set_from_icon_name (image, "image-missing", DEFAULT_ICON_SIZE);
++ gtk_image_set_from_icon_name (image,
++ "image-missing",
++ DEFAULT_ICON_SIZE);
+ g_object_thaw_notify (G_OBJECT (image));
+ return;
+ }
+@@ -1059,29 +1046,18 @@ gtk_image_set_from_pixbuf (GtkImage *image,
+ GtkImagePrivate *priv;
+
+ g_return_if_fail (GTK_IS_IMAGE (image));
+- g_return_if_fail (pixbuf == NULL || GDK_IS_PIXBUF (pixbuf));
++ g_return_if_fail (pixbuf == NULL ||
++ GDK_IS_PIXBUF (pixbuf));
+
+ priv = image->priv;
+
+ g_object_freeze_notify (G_OBJECT (image));
+-
+- gtk_image_reset (image);
++
++ gtk_image_clear (image);
+
+ if (pixbuf != NULL)
+ _gtk_icon_helper_set_pixbuf (priv->icon_helper, pixbuf);
+
+- if (gtk_widget_get_visible (GTK_WIDGET (image)))
+- {
+- gint width, height;
+-
+- gtk_image_get_preferred_size (image, &width, &height);
+- if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
+- height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
+- gtk_widget_queue_resize (GTK_WIDGET (image));
+- else
+- gtk_widget_queue_draw (GTK_WIDGET (image));
+- }
+-
+ g_object_notify (G_OBJECT (image), "pixbuf");
+
+ g_object_thaw_notify (G_OBJECT (image));
+@@ -1195,7 +1171,7 @@ gtk_image_set_from_animation (GtkImage *image,
+ if (animation)
+ g_object_ref (animation);
+
+- gtk_image_reset (image);
++ gtk_image_clear (image);
+
+ if (animation != NULL)
+ {
+@@ -1203,18 +1179,6 @@ gtk_image_set_from_animation (GtkImage *image,
+ g_object_unref (animation);
+ }
+
+- if (gtk_widget_get_visible (GTK_WIDGET (image)))
+- {
+- gint width, height;
+-
+- gtk_image_get_preferred_size (image, &width, &height);
+- if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
+- height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
+- gtk_widget_queue_resize (GTK_WIDGET (image));
+- else
+- gtk_widget_queue_draw (GTK_WIDGET (image));
+- }
+-
+ g_object_notify (G_OBJECT (image), "pixbuf-animation");
+
+ g_object_thaw_notify (G_OBJECT (image));
+@@ -1245,8 +1209,7 @@ gtk_image_set_from_icon_name (GtkImage *image,
+ g_object_freeze_notify (G_OBJECT (image));
+
+ new_name = g_strdup (icon_name);
+-
+- gtk_image_reset (image);
++ gtk_image_clear (image);
+
+ if (new_name)
+ {
+@@ -1254,18 +1217,6 @@ gtk_image_set_from_icon_name (GtkImage *image,
+ g_free (new_name);
+ }
+
+- if (gtk_widget_get_visible (GTK_WIDGET (image)))
+- {
+- gint width, height;
+-
+- gtk_image_get_preferred_size (image, &width, &height);
+- if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
+- height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
+- gtk_widget_queue_resize (GTK_WIDGET (image));
+- else
+- gtk_widget_queue_draw (GTK_WIDGET (image));
+- }
+-
+ g_object_notify (G_OBJECT (image), "icon-name");
+ g_object_notify (G_OBJECT (image), "icon-size");
+
+@@ -1298,7 +1249,7 @@ gtk_image_set_from_gicon (GtkImage *image,
+ if (icon)
+ g_object_ref (icon);
+
+- gtk_image_reset (image);
++ gtk_image_clear (image);
+
+ if (icon)
+ {
+@@ -1306,18 +1257,6 @@ gtk_image_set_from_gicon (GtkImage *image,
+ g_object_unref (icon);
+ }
+
+- if (gtk_widget_get_visible (GTK_WIDGET (image)))
+- {
+- gint width, height;
+-
+- gtk_image_get_preferred_size (image, &width, &height);
+- if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
+- height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
+- gtk_widget_queue_resize (GTK_WIDGET (image));
+- else
+- gtk_widget_queue_draw (GTK_WIDGET (image));
+- }
+-
+ g_object_notify (G_OBJECT (image), "gicon");
+ g_object_notify (G_OBJECT (image), "icon-size");
+
+@@ -1348,7 +1287,7 @@ gtk_image_set_from_surface (GtkImage *image,
+ if (surface)
+ cairo_surface_reference (surface);
+
+- gtk_image_reset (image);
++ gtk_image_clear (image);
+
+ if (surface)
+ {
+@@ -1356,18 +1295,6 @@ gtk_image_set_from_surface (GtkImage *image,
+ cairo_surface_destroy (surface);
+ }
+
+- if (gtk_widget_get_visible (GTK_WIDGET (image)))
+- {
+- gint width, height;
+-
+- gtk_image_get_preferred_size (image, &width, &height);
+- if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
+- height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
+- gtk_widget_queue_resize (GTK_WIDGET (image));
+- else
+- gtk_widget_queue_draw (GTK_WIDGET (image));
+- }
+-
+ g_object_notify (G_OBJECT (image), "surface");
+
+ g_object_thaw_notify (G_OBJECT (image));
+--
+2.3.5
+
Added: 0001-x11-Relax-requirements-for-setting-ParentRelative.patch
===================================================================
--- 0001-x11-Relax-requirements-for-setting-ParentRelative.patch (rev 0)
+++ 0001-x11-Relax-requirements-for-setting-ParentRelative.patch 2015-04-12 20:49:24 UTC (rev 236320)
@@ -0,0 +1,42 @@
+From d1dfc28b21319530ebaad40dfdb1b10bdc527b50 Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos at foutrelis.com>
+Date: Sat, 11 Apr 2015 11:20:56 +0300
+Subject: [PATCH] x11: Relax requirements for setting ParentRelative
+
+XSetWindowBackgroundPixmap() will throw BadMatch only in the case of a
+different parent window depth. Different visuals are fine and actually
+expected in Gtk+ 3.16 (since we don't stick to the system default visual
+but try to pick a better one).
+
+https://bugzilla.gnome.org/show_bug.cgi?id=747524
+---
+ gdk/x11/gdkwindow-x11.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
+index 25b5e2b..1ace677 100644
+--- a/gdk/x11/gdkwindow-x11.c
++++ b/gdk/x11/gdkwindow-x11.c
+@@ -2963,15 +2963,15 @@ gdk_window_x11_set_background (GdkWindow *window,
+ {
+ GdkWindow *parent;
+
+- /* X throws BadMatch if the parent has a different visual when
++ /* X throws BadMatch if the parent has a different depth when
+ * using ParentRelative */
+ parent = gdk_window_get_parent (window);
+- if (parent && gdk_window_get_visual (parent) == gdk_window_get_visual (window))
++ if (parent && window->depth != parent->depth)
+ XSetWindowBackgroundPixmap (GDK_WINDOW_XDISPLAY (window),
+- GDK_WINDOW_XID (window), ParentRelative);
++ GDK_WINDOW_XID (window), None);
+ else
+ XSetWindowBackgroundPixmap (GDK_WINDOW_XDISPLAY (window),
+- GDK_WINDOW_XID (window), None);
++ GDK_WINDOW_XID (window), ParentRelative);
+ return;
+ }
+
+--
+2.3.5
+
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-04-12 19:47:51 UTC (rev 236319)
+++ PKGBUILD 2015-04-12 20:49:24 UTC (rev 236320)
@@ -4,7 +4,7 @@
pkgname=gtk3
pkgver=3.16.1
-pkgrel=1
+pkgrel=2
pkgdesc="GObject-based multi-platform GUI toolkit (v3)"
arch=(i686 x86_64)
url="http://www.gtk.org/"
@@ -14,11 +14,24 @@
adwaita-icon-theme json-glib rest)
makedepends=(gobject-introspection)
license=(LGPL)
-source=(https://download.gnome.org/sources/gtk+/${pkgver:0:4}/gtk+-$pkgver.tar.xz)
-sha256sums=('9f9716a8c7f8dc149f767718e25fed41984b504a00fd0919b1a4969ca2e4db31')
+source=(https://download.gnome.org/sources/gtk+/${pkgver:0:4}/gtk+-$pkgver.tar.xz
+ 0001-Revert-image-Optimize-non-resize-changes.patch
+ 0001-x11-Relax-requirements-for-setting-ParentRelative.patch)
+sha256sums=('9f9716a8c7f8dc149f767718e25fed41984b504a00fd0919b1a4969ca2e4db31'
+ '4e21dd47f520f7a4c5143f34b208c0a24f0bf620d5409d45dbe2901bfa7d5e9a'
+ '94ec473293946e45217ed35e9518c45771bf28f1007962bb749e21906bf0201b')
prepare() {
cd gtk+-$pkgver
+
+ # revert commit that causes nm-applet to fail to load
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1208183
+ patch -Np1 -i ../0001-Revert-image-Optimize-non-resize-changes.patch
+
+ # fix transparency setting for status icons on Xfce
+ # patch not yet upstream but it should get accepted
+ # https://bugzilla.gnome.org/show_bug.cgi?id=747524
+ patch -Np1 -i ../0001-x11-Relax-requirements-for-setting-ParentRelative.patch
}
build() {
More information about the arch-commits
mailing list