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 <[email protected]> +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 <[email protected]> +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() {
