[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#770414: unblock: gtk+3.0/3.14.5-1



Hello again!

Heavily filtered debdiff included.... 

debdiff *.dsc | filterdiff -x '*/build/win32/*' -x '*/*/*.po' -x '*/gdk/quartz/*' -x '*/docs/*' -x '*/INSTALL' -x '*/README' -x '*/build/*msvc*' -x '*/*win32' -x '*/gdk/win32/rc/gdk.rc' -x '*/configure' -x '*/*/*.pot' -x '*/gdk/broadway/*.h' -x '*/gtk/gtkresources.c' -x '*/gtk/resources/*' -x '*/gtk/gtkversion.h' -x '*/gdk/gdkversionmacros.h' -x '*/debian/control' -x '*/debian/patches/*' -x '*/gtk/gtkmenu.c'

Summary of what was filtered out:
 - ms windows related changes
 - quartz (osx) related changes
 - built/autogenerated noise (eg. version number bump related, etc.)
 - css fixes in default adwaita theme
 - changes for previously shipped debian/patch now merged upstream.
 - translations

Not sure this complies with release-team normal procedures but for a
proper review I'd suggest looking at each commit in the upstream
repository separately together with the explanation in the commit
message and the referenced bug. See 3.14.4 -> 3.14.5 at:
https://git.gnome.org/browse/gtk+/log/?h=gtk-3-14

I guess the result is still a bit to big for the release-teams taste,
but when looking at each fix individually I'm can't really spot one that
I'd say we could/should exclude. They're all nice to have and they do
benefit alot of users, while being as small as possible.
If in doubt I'd suggest to leave it in unstable for a week or two more
just to let it get some more testing and chance for people to report
bugs against it if they can find any, then look at it again to see if
it's time to unblock.

If you still disagree, then I think Matt would welcome some hints on how
he can go about getting a targeted fix in for the particular problem he
cares about....


diff -Nru gtk+3.0-3.14.4/build/gtk-introspection-msvc.mak gtk+3.0-3.14.5/build/gtk-introspection-msvc.mak
diff -Nru gtk+3.0-3.14.4/build/win32/vs10/broadwayd.vcxproj gtk+3.0-3.14.5/build/win32/vs10/broadwayd.vcxproj
diff -Nru gtk+3.0-3.14.4/build/win32/vs10/broadwayd.vcxproj.filters gtk+3.0-3.14.5/build/win32/vs10/broadwayd.vcxproj.filters
diff -Nru gtk+3.0-3.14.4/build/win32/vs10/gtk-copy-gdk-broadway.props gtk+3.0-3.14.5/build/win32/vs10/gtk-copy-gdk-broadway.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs10/gtk-install.props gtk+3.0-3.14.5/build/win32/vs10/gtk-install.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs10/gtk-version-paths.props gtk+3.0-3.14.5/build/win32/vs10/gtk-version-paths.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs11/broadwayd.vcxproj gtk+3.0-3.14.5/build/win32/vs11/broadwayd.vcxproj
diff -Nru gtk+3.0-3.14.4/build/win32/vs11/broadwayd.vcxproj.filters gtk+3.0-3.14.5/build/win32/vs11/broadwayd.vcxproj.filters
diff -Nru gtk+3.0-3.14.4/build/win32/vs11/gtk-copy-gdk-broadway.props gtk+3.0-3.14.5/build/win32/vs11/gtk-copy-gdk-broadway.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs11/gtk-install.props gtk+3.0-3.14.5/build/win32/vs11/gtk-install.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs11/gtk-version-paths.props gtk+3.0-3.14.5/build/win32/vs11/gtk-version-paths.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs12/broadwayd.vcxproj gtk+3.0-3.14.5/build/win32/vs12/broadwayd.vcxproj
diff -Nru gtk+3.0-3.14.4/build/win32/vs12/broadwayd.vcxproj.filters gtk+3.0-3.14.5/build/win32/vs12/broadwayd.vcxproj.filters
diff -Nru gtk+3.0-3.14.4/build/win32/vs12/gtk-copy-gdk-broadway.props gtk+3.0-3.14.5/build/win32/vs12/gtk-copy-gdk-broadway.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs12/gtk-install.props gtk+3.0-3.14.5/build/win32/vs12/gtk-install.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs12/gtk-version-paths.props gtk+3.0-3.14.5/build/win32/vs12/gtk-version-paths.props
diff -Nru gtk+3.0-3.14.4/build/win32/vs9/broadwayd.vcproj gtk+3.0-3.14.5/build/win32/vs9/broadwayd.vcproj
diff -Nru gtk+3.0-3.14.4/build/win32/vs9/gtk-install.vsprops gtk+3.0-3.14.5/build/win32/vs9/gtk-install.vsprops
diff -Nru gtk+3.0-3.14.4/build/win32/vs9/gtk-version-paths.vsprops gtk+3.0-3.14.5/build/win32/vs9/gtk-version-paths.vsprops
diff -Nru gtk+3.0-3.14.4/config.h.win32 gtk+3.0-3.14.5/config.h.win32
diff -Nru gtk+3.0-3.14.4/configure gtk+3.0-3.14.5/configure
diff -Nru gtk+3.0-3.14.4/configure.ac gtk+3.0-3.14.5/configure.ac
--- gtk+3.0-3.14.4/configure.ac	2014-10-21 17:02:10.000000000 +0200
+++ gtk+3.0-3.14.5/configure.ac	2014-11-09 22:17:45.000000000 +0100
@@ -10,8 +10,8 @@
 
 m4_define([gtk_major_version], [3])
 m4_define([gtk_minor_version], [14])
-m4_define([gtk_micro_version], [4])
-m4_define([gtk_interface_age], [4])
+m4_define([gtk_micro_version], [5])
+m4_define([gtk_interface_age], [5])
 m4_define([gtk_binary_age],
           [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
 m4_define([gtk_version],
diff -Nru gtk+3.0-3.14.4/debian/changelog gtk+3.0-3.14.5/debian/changelog
--- gtk+3.0-3.14.4/debian/changelog	2014-11-04 15:20:06.000000000 +0100
+++ gtk+3.0-3.14.5/debian/changelog	2014-11-11 18:55:48.000000000 +0100
@@ -1,3 +1,11 @@
+gtk+3.0 (3.14.5-1) unstable; urgency=medium
+
+  * New upstream bugfix release.
+  * debian/patches/077_fix_menu_height_calculating.patch:
+    + Dropped, merged upstream.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 11 Nov 2014 18:55:46 +0100
+
 gtk+3.0 (3.14.4-2) unstable; urgency=medium
 
   [ Rico Tzschichholz ]
diff -Nru gtk+3.0-3.14.4/debian/control gtk+3.0-3.14.5/debian/control
diff -Nru gtk+3.0-3.14.4/debian/patches/077_fix_menu_height_calculating.patch gtk+3.0-3.14.5/debian/patches/077_fix_menu_height_calculating.patch
diff -Nru gtk+3.0-3.14.4/debian/patches/series gtk+3.0-3.14.5/debian/patches/series
diff -Nru gtk+3.0-3.14.4/docs/reference/gdk/html/api-index-deprecated.html gtk+3.0-3.14.5/docs/reference/gdk/html/api-index-deprecated.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gdk/html/api-index-full.html gtk+3.0-3.14.5/docs/reference/gdk/html/api-index-full.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gdk/html/gdk3-Cairo-Interaction.html gtk+3.0-3.14.5/docs/reference/gdk/html/gdk3-Cairo-Interaction.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gdk/html/gdk3-Cursors.html gtk+3.0-3.14.5/docs/reference/gdk/html/gdk3-Cursors.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gdk/html/gdk3-Pixbufs.html gtk+3.0-3.14.5/docs/reference/gdk/html/gdk3-Pixbufs.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gdk/html/index.html gtk+3.0-3.14.5/docs/reference/gdk/html/index.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gdk/version.xml gtk+3.0-3.14.5/docs/reference/gdk/version.xml
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/broadwayd.1 gtk+3.0-3.14.5/docs/reference/gtk/broadwayd.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/gtk3-demo.1 gtk+3.0-3.14.5/docs/reference/gtk/gtk3-demo.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/gtk3-icon-browser.1 gtk+3.0-3.14.5/docs/reference/gtk/gtk3-icon-browser.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/gtk3-widget-factory.1 gtk+3.0-3.14.5/docs/reference/gtk/gtk3-widget-factory.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/gtk-encode-symbolic-svg.1 gtk+3.0-3.14.5/docs/reference/gtk/gtk-encode-symbolic-svg.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/gtk-launch.1 gtk+3.0-3.14.5/docs/reference/gtk/gtk-launch.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/gtk-query-immodules-3.0.1 gtk+3.0-3.14.5/docs/reference/gtk/gtk-query-immodules-3.0.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/gtk-update-icon-cache.1 gtk+3.0-3.14.5/docs/reference/gtk/gtk-update-icon-cache.1
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/api-index-deprecated.html gtk+3.0-3.14.5/docs/reference/gtk/html/api-index-deprecated.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/api-index-full.html gtk+3.0-3.14.5/docs/reference/gtk/html/api-index-full.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/ch25s02.html gtk+3.0-3.14.5/docs/reference/gtk/html/ch25s02.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk3-Clipboards.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk3-Clipboards.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk3-Drag-and-Drop.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk3-Drag-and-Drop.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk3-Feature-Test-Macros.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk3-Feature-Test-Macros.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk3-Selections.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk3-Selections.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk3-Themeable-Stock-Images.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk3-Themeable-Stock-Images.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkAboutDialog.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkAboutDialog.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkActivatable.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkActivatable.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkAssistant.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkAssistant.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkCellRendererPixbuf.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkCellRendererPixbuf.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkCellView.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkCellView.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkEntry.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkEntry.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkFileChooser.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkFileChooser.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkIconTheme.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkIconTheme.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkImage.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkImage.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkListStore.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkListStore.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk-migrating-2-to-3.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk-migrating-2-to-3.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk-migrating-theme-GtkStyleContext-engines.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk-migrating-theme-GtkStyleContext-engines.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkOffscreenWindow.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkOffscreenWindow.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/gtk-question-index.html gtk+3.0-3.14.5/docs/reference/gtk/html/gtk-question-index.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkRecentManager.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkRecentManager.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkStatusIcon.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkStatusIcon.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkStyleContext.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkStyleContext.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkStyle.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkStyle.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkTextBuffer.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkTextBuffer.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkTextIter.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkTextIter.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkThemingEngine.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkThemingEngine.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkTooltip.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkTooltip.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkTreeStore.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkTreeStore.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkWidget.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkWidget.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/GtkWindow.html gtk+3.0-3.14.5/docs/reference/gtk/html/GtkWindow.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/html/index.html gtk+3.0-3.14.5/docs/reference/gtk/html/index.html
diff -Nru gtk+3.0-3.14.4/docs/reference/gtk/version.xml gtk+3.0-3.14.5/docs/reference/gtk/version.xml
diff -Nru gtk+3.0-3.14.4/docs/reference/libgail-util/html/index.html gtk+3.0-3.14.5/docs/reference/libgail-util/html/index.html
diff -Nru gtk+3.0-3.14.4/docs/reference/libgail-util/version.xml gtk+3.0-3.14.5/docs/reference/libgail-util/version.xml
diff -Nru gtk+3.0-3.14.4/gdk/broadway/broadwayjs.h gtk+3.0-3.14.5/gdk/broadway/broadwayjs.h
diff -Nru gtk+3.0-3.14.4/gdk/broadway/clienthtml.h gtk+3.0-3.14.5/gdk/broadway/clienthtml.h
diff -Nru gtk+3.0-3.14.4/gdk/gdkversionmacros.h gtk+3.0-3.14.5/gdk/gdkversionmacros.h
diff -Nru gtk+3.0-3.14.4/gdk/quartz/GdkQuartzNSWindow.c gtk+3.0-3.14.5/gdk/quartz/GdkQuartzNSWindow.c
diff -Nru gtk+3.0-3.14.4/gdk/quartz/GdkQuartzNSWindow.h gtk+3.0-3.14.5/gdk/quartz/GdkQuartzNSWindow.h
diff -Nru gtk+3.0-3.14.4/gdk/quartz/gdkwindow-quartz.c gtk+3.0-3.14.5/gdk/quartz/gdkwindow-quartz.c
diff -Nru gtk+3.0-3.14.4/gdk/win32/rc/gdk.rc gtk+3.0-3.14.5/gdk/win32/rc/gdk.rc
diff -Nru gtk+3.0-3.14.4/gdk/x11/gdkkeys-x11.c gtk+3.0-3.14.5/gdk/x11/gdkkeys-x11.c
--- gtk+3.0-3.14.4/gdk/x11/gdkkeys-x11.c	2014-08-10 17:30:09.000000000 +0200
+++ gtk+3.0-3.14.5/gdk/x11/gdkkeys-x11.c	2014-11-09 18:57:30.000000000 +0100
@@ -1058,6 +1058,7 @@
     int col,nKeyGroups;
     unsigned preserve,effectiveGroup;
     KeySym *syms;
+    int found_col = 0;
 
     if (mods_rtrn!=NULL)
         *mods_rtrn = 0;
@@ -1090,7 +1091,7 @@
                 break;
         }
     }
-    col= effectiveGroup*XkbKeyGroupsWidth(xkb,key);
+    found_col = col= effectiveGroup*XkbKeyGroupsWidth(xkb,key);
     type = XkbKeyKeyType(xkb,key,effectiveGroup);
 
     preserve= 0;
@@ -1129,7 +1130,7 @@
             }
 
             if (!found && ((mods&type->mods.mask) == entry->mods.mask)) {
-                col+= entry->level;
+                found_col= col + entry->level;
                 if (type->preserve)
                     preserve= type->preserve[i].mask;
 
@@ -1143,7 +1144,7 @@
     }
 
     if (keysym_rtrn!=NULL)
-        *keysym_rtrn= syms[col];
+        *keysym_rtrn= syms[found_col];
     if (mods_rtrn) {
         /* ---- Begin section modified for GDK  ---- */
         *mods_rtrn &= ~preserve;
@@ -1175,7 +1176,7 @@
 
     /* ---- End stuff GDK adds to the original Xlib version ---- */
 
-    return (syms[col] != NoSymbol);
+    return (syms[found_col] != NoSymbol);
 }
 #endif /* HAVE_XKB */
 
diff -Nru gtk+3.0-3.14.4/gdk/x11/gdkwindow-x11.c gtk+3.0-3.14.5/gdk/x11/gdkwindow-x11.c
--- gtk+3.0-3.14.4/gdk/x11/gdkwindow-x11.c	2014-10-21 16:20:55.000000000 +0200
+++ gtk+3.0-3.14.5/gdk/x11/gdkwindow-x11.c	2014-11-09 18:57:30.000000000 +0100
@@ -181,8 +181,6 @@
   return impl->toplevel;
 }
 
-static const cairo_user_data_key_t gdk_x11_cairo_key;
-
 /**
  * _gdk_x11_window_update_size:
  * @impl: a #GdkWindowImplX11.
@@ -442,14 +440,6 @@
  * X11 specific implementations of generic functions *
  *****************************************************/
 
-static void
-gdk_x11_cairo_surface_destroy (void *data)
-{
-  GdkWindowImplX11 *impl = data;
-
-  impl->cairo_surface = NULL;
-}
-
 static cairo_surface_t *
 gdk_x11_create_cairo_surface (GdkWindowImplX11 *impl,
 			      int width,
@@ -480,16 +470,12 @@
 #ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
       cairo_surface_set_device_scale (impl->cairo_surface, impl->window_scale, impl->window_scale);
 #endif
-      
-      if (impl->cairo_surface)
-	cairo_surface_set_user_data (impl->cairo_surface, &gdk_x11_cairo_key,
-				     impl, gdk_x11_cairo_surface_destroy);
 
       if (WINDOW_IS_TOPLEVEL (window) && impl->toplevel->in_frame)
         hook_surface_changed (window);
     }
-  else
-    cairo_surface_reference (impl->cairo_surface);
+
+  cairo_surface_reference (impl->cairo_surface);
 
   return impl->cairo_surface;
 }
@@ -1329,8 +1315,8 @@
   if (impl->cairo_surface)
     {
       cairo_surface_finish (impl->cairo_surface);
-      cairo_surface_set_user_data (impl->cairo_surface, &gdk_x11_cairo_key,
-                                   NULL, NULL);
+      cairo_surface_destroy (impl->cairo_surface);
+      impl->cairo_surface = NULL;
     }
 
   if (!recursing && !foreign_destroy)
@@ -1924,6 +1910,11 @@
   impl = GDK_WINDOW_IMPL_X11 (window->impl);
 
   impl->window_scale = scale;
+#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
+  if (impl->cairo_surface)
+    cairo_surface_set_device_scale (impl->cairo_surface, impl->window_scale, impl->window_scale);
+#endif
+  _gdk_window_update_size (window);
 
   toplevel = _gdk_x11_window_get_toplevel (window);
   if (toplevel && window->window_type != GDK_WINDOW_FOREIGN)
@@ -5685,6 +5676,7 @@
 gdk_x11_window_show_window_menu (GdkWindow *window,
                                  GdkEvent  *event)
 {
+  GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl);
   GdkDisplay *display = GDK_WINDOW_DISPLAY (window);
   GdkDevice *device;
   int device_id;
@@ -5717,8 +5709,8 @@
   xclient.window = GDK_WINDOW_XID (window);
   xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "_GTK_SHOW_WINDOW_MENU");
   xclient.data.l[0] = device_id;
-  xclient.data.l[1] = x_root;
-  xclient.data.l[2] = y_root;
+  xclient.data.l[1] = x_root * impl->window_scale;
+  xclient.data.l[2] = y_root * impl->window_scale;
   xclient.format = 32;
 
   XSendEvent (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XROOTWIN (window), False,
diff -Nru gtk+3.0-3.14.4/gtk/deprecated/gtkstatusicon.c gtk+3.0-3.14.5/gtk/deprecated/gtkstatusicon.c
--- gtk+3.0-3.14.4/gtk/deprecated/gtkstatusicon.c	2014-09-17 17:10:41.000000000 +0200
+++ gtk+3.0-3.14.5/gtk/deprecated/gtkstatusicon.c	2014-11-09 18:57:30.000000000 +0100
@@ -2599,7 +2599,8 @@
 {
 #ifdef GDK_WINDOWING_X11
   GtkStatusIconPrivate *priv;
-#else
+#endif
+#if defined (GDK_WINDOWING_WIN32) || defined (GDK_WINDOWING_QUARTZ)
   gchar *text = NULL;
 #endif
 
diff -Nru gtk+3.0-3.14.4/gtk/gtkfontchooserwidget.c gtk+3.0-3.14.5/gtk/gtkfontchooserwidget.c
--- gtk+3.0-3.14.4/gtk/gtkfontchooserwidget.c	2014-10-21 16:20:55.000000000 +0200
+++ gtk+3.0-3.14.5/gtk/gtkfontchooserwidget.c	2014-11-09 18:57:30.000000000 +0100
@@ -627,7 +627,9 @@
 
   qsort (families, n_families, sizeof (PangoFontFamily *), cmp_families);
 
+  g_signal_handlers_block_by_func(priv->family_face_list, cursor_changed_cb, fontchooser);
   gtk_list_store_clear (list_store);
+  g_signal_handlers_unblock_by_func (priv->family_face_list, cursor_changed_cb, fontchooser);
 
   /* Iterate over families and faces */
   for (i = 0; i < n_families; i++)
@@ -880,18 +882,18 @@
                                    GtkTreeIter                 *iter)
 {
   GtkFontChooserWidgetPrivate *priv = fontchooser->priv;
-  PangoFontDescription *desc;
-  PangoFontFamily *family;
-  gboolean valid, found;
+  gboolean valid;
 
   if (pango_font_description_get_family (font_desc) == NULL)
     return FALSE;
 
-  found = FALSE;
   for (valid = gtk_tree_model_get_iter_first (priv->model, iter);
-       valid && !found;
+       valid;
        valid = gtk_tree_model_iter_next (priv->model, iter))
     {
+      PangoFontDescription *desc;
+      PangoFontFamily *family;
+
       gtk_tree_model_get (priv->model, iter,
                           FAMILY_COLUMN, &family,
                           -1);
@@ -903,13 +905,15 @@
       desc = tree_model_get_font_description (priv->model, iter);
 
       pango_font_description_merge_static (desc, font_desc, FALSE);
-      if (pango_font_description_equal (desc, font_desc))
-        found = TRUE;
+      if (pango_font_description_equal (desc, font_desc)) {
+        pango_font_description_free (desc);
+        break;
+      }
 
       pango_font_description_free (desc);
     }
   
-  return found;
+  return valid;
 }
 
 static void
diff -Nru gtk+3.0-3.14.4/gtk/gtkmenu.c gtk+3.0-3.14.5/gtk/gtkmenu.c
diff -Nru gtk+3.0-3.14.4/gtk/gtkmenusectionbox.c gtk+3.0-3.14.5/gtk/gtkmenusectionbox.c
--- gtk+3.0-3.14.4/gtk/gtkmenusectionbox.c	2014-10-19 20:29:17.000000000 +0200
+++ gtk+3.0-3.14.5/gtk/gtkmenusectionbox.c	2014-11-09 18:57:30.000000000 +0100
@@ -49,10 +49,16 @@
   gint               depth;
 };
 
+typedef struct
+{
+  gint     n_items;
+  gboolean previous_is_iconic;
+} MenuData;
+
 G_DEFINE_TYPE (GtkMenuSectionBox, gtk_menu_section_box, GTK_TYPE_BOX)
 
 void                    gtk_menu_section_box_sync_separators            (GtkMenuSectionBox  *box,
-                                                                         gint               *n_items);
+                                                                         MenuData           *data);
 void                    gtk_menu_section_box_new_submenu                (GtkMenuTrackerItem *item,
                                                                          GtkMenuSectionBox  *toplevel,
                                                                          GtkWidget          *focus);
@@ -63,12 +69,12 @@
 gtk_menu_section_box_sync_item (GtkWidget *widget,
                                 gpointer   user_data)
 {
-  gint *n_items = user_data;
+  MenuData *data = (MenuData *)user_data;
 
   if (GTK_IS_MENU_SECTION_BOX (widget))
-    gtk_menu_section_box_sync_separators (GTK_MENU_SECTION_BOX (widget), n_items);
+    gtk_menu_section_box_sync_separators (GTK_MENU_SECTION_BOX (widget), data);
   else
-    (*n_items)++;
+    data->n_items++;
 }
 
 /* We are trying to implement the following rules here:
@@ -78,26 +84,32 @@
  * rule 3: don't show a separator for the first section
  * rule 4: don't show a separator for the following sections if there are
  *         no items before it
- * (rule 5: these rules don't apply exactly the same way for subsections)
+ * rule 5: never show separators directly above or below an iconic box
+ * (rule 6: these rules don't apply exactly the same way for subsections)
  */
 void
 gtk_menu_section_box_sync_separators (GtkMenuSectionBox *box,
-                                      gint              *n_items)
+                                      MenuData          *data)
 {
+  GtkWidget *parent_widget;
+  gboolean previous_section_is_iconic;
   gboolean should_have_separator;
+  gboolean should_have_top_margin = FALSE;
+  gboolean is_not_empty_item;
   gboolean has_separator;
   gboolean has_label;
-  gint n_items_before = *n_items;
+  gboolean separator_condition;
+  gint n_items_before;
 
-  gtk_container_foreach (GTK_CONTAINER (box->item_box), gtk_menu_section_box_sync_item, n_items);
+  n_items_before =  data->n_items;
+  previous_section_is_iconic = data->previous_is_iconic;
 
-  if (box->iconic)
-    {
-      if (n_items_before > 0)
-        gtk_widget_set_margin_top (GTK_WIDGET (box->item_box), 10);
-      else
-        gtk_widget_set_margin_top (GTK_WIDGET (box->item_box), 0);
-    }
+  gtk_container_foreach (GTK_CONTAINER (box->item_box), gtk_menu_section_box_sync_item, data);
+
+  is_not_empty_item = (data->n_items > n_items_before);
+
+  if (is_not_empty_item)
+    data->previous_is_iconic = box->iconic;
 
   if (box->separator == NULL)
     return;
@@ -105,7 +117,19 @@
   has_separator = gtk_widget_get_parent (box->separator) != NULL;
   has_label = !GTK_IS_SEPARATOR (box->separator);
 
-  should_have_separator = (has_label || (n_items_before > 0 && box->depth <= 1)) && *n_items > n_items_before;
+  separator_condition = has_label ? TRUE : n_items_before > 0 &&
+                                           box->depth <= 1 &&
+                                           !previous_section_is_iconic &&
+                                           !box->iconic;
+
+  should_have_separator = separator_condition && is_not_empty_item;
+
+  should_have_top_margin = !should_have_separator &&
+                           (box->depth <= 1 || box->iconic) &&
+                           n_items_before > 0 &&
+                           is_not_empty_item;
+
+  gtk_widget_set_margin_top (GTK_WIDGET (box->item_box), should_have_top_margin ? 10 : 0);
 
   if (should_have_separator == has_separator)
     return;
@@ -120,9 +144,11 @@
 gtk_menu_section_box_handle_sync_separators (gpointer user_data)
 {
   GtkMenuSectionBox *box = user_data;
-  gint n_items = 0;
+  MenuData data;
 
-  gtk_menu_section_box_sync_separators (box, &n_items);
+  data.n_items = 0;
+  data.previous_is_iconic = FALSE;
+  gtk_menu_section_box_sync_separators (box, &data);
 
   box->separator_sync_idle = 0;
 
@@ -329,11 +355,7 @@
       box->separator_sync_idle = 0;
     }
 
-  if (box->separator)
-    {
-      gtk_widget_destroy (box->separator);
-      box->separator = NULL;
-    }
+  g_clear_object (&box->separator);
 
   if (box->size_group)
     {
@@ -448,7 +470,10 @@
       g_object_bind_property (item, "label", title, "label", G_BINDING_SYNC_CREATE);
       gtk_style_context_add_class (gtk_widget_get_style_context (title), GTK_STYLE_CLASS_SEPARATOR);
       gtk_widget_set_halign (title, GTK_ALIGN_START);
+
       box->separator = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+      g_object_ref_sink (box->separator);
+
       g_object_set (box->separator,
                     "margin-start", 12,
                     "margin-end", 12,
@@ -462,6 +487,8 @@
   else
     {
       box->separator = separator;
+      g_object_ref_sink (box->separator);
+
       g_object_set (box->separator,
                     "margin-start", 12,
                     "margin-end", 12,
@@ -471,8 +498,6 @@
       gtk_widget_show (box->separator);
     }
 
-  g_object_add_weak_pointer (G_OBJECT (box->separator), (gpointer *)&(box->separator));
-
   box->tracker = gtk_menu_tracker_new_for_item_link (item, G_MENU_LINK_SECTION, FALSE,
                                                      gtk_menu_section_box_insert_func,
                                                      gtk_menu_section_box_remove_func,
diff -Nru gtk+3.0-3.14.4/gtk/gtkresources.c gtk+3.0-3.14.5/gtk/gtkresources.c
diff -Nru gtk+3.0-3.14.4/gtk/gtktreeview.c gtk+3.0-3.14.5/gtk/gtktreeview.c
--- gtk+3.0-3.14.4/gtk/gtktreeview.c	2014-09-19 03:52:49.000000000 +0200
+++ gtk+3.0-3.14.5/gtk/gtktreeview.c	2014-11-09 18:57:30.000000000 +0100
@@ -3291,8 +3291,7 @@
       tree_view->priv->extend_selection_pressed = FALSE;
     }
 
-  if (button == GDK_BUTTON_PRIMARY &&
-      (n_press == 2 || (n_press == 1 && tree_view->priv->activate_on_single_click)))
+  if (button == GDK_BUTTON_PRIMARY && n_press == 2)
     gtk_tree_view_row_activated (tree_view, path, column);
   else
     {
diff -Nru gtk+3.0-3.14.4/gtk/gtkversion.h gtk+3.0-3.14.5/gtk/gtkversion.h
diff -Nru gtk+3.0-3.14.4/gtk/gtkwindow.c gtk+3.0-3.14.5/gtk/gtkwindow.c
--- gtk+3.0-3.14.4/gtk/gtkwindow.c	2014-10-21 16:20:55.000000000 +0200
+++ gtk+3.0-3.14.5/gtk/gtkwindow.c	2014-11-09 19:02:20.000000000 +0100
@@ -1604,7 +1604,7 @@
 
   G_OBJECT_CLASS (gtk_window_parent_class)->constructed (object);
 
-  if (priv->type == GTK_WINDOW_TOPLEVEL)
+  if (priv->type == GTK_WINDOW_TOPLEVEL && !GTK_IS_PLUG (window))
     {
       priv->multipress_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (object));
       gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->multipress_gesture), 0);
@@ -7704,6 +7704,7 @@
 gboolean
 _gtk_window_check_handle_wm_event (GdkEvent *event)
 {
+  GtkWindowPrivate *priv;
   GtkWidget *widget;
 
   widget = gtk_get_event_widget (event);
@@ -7711,6 +7712,11 @@
   if (!GTK_IS_WINDOW (widget))
     return GDK_EVENT_PROPAGATE;
 
+  priv = GTK_WINDOW (widget)->priv;
+
+  if (!priv->multipress_gesture)
+    return GDK_EVENT_PROPAGATE;
+
   if (event->type != GDK_BUTTON_PRESS && event->type != GDK_BUTTON_RELEASE &&
       event->type != GDK_MOTION_NOTIFY && event->type != GDK_TOUCH_BEGIN &&
       event->type != GDK_TOUCH_END && event->type != GDK_TOUCH_UPDATE)
@@ -10266,6 +10272,7 @@
   GtkWindowPrivate *priv;
   GtkWidget *widget;
   GdkScreen *previous_screen;
+  gboolean was_rgba;
   gboolean was_mapped;
 
   g_return_if_fail (GTK_IS_WINDOW (window));
@@ -10279,6 +10286,12 @@
   widget = GTK_WIDGET (window);
 
   previous_screen = priv->screen;
+
+  if (gdk_screen_get_rgba_visual (previous_screen) == gtk_widget_get_visual (widget))
+    was_rgba = TRUE;
+  else
+    was_rgba = FALSE;
+
   was_mapped = gtk_widget_get_mapped (widget);
 
   if (was_mapped)
@@ -10312,6 +10325,15 @@
     }
   g_object_notify (G_OBJECT (window), "screen");
 
+  if (was_rgba)
+    {
+      GdkVisual *visual;
+
+      visual = gdk_screen_get_rgba_visual (screen);
+      if (visual)
+        gtk_widget_set_visual (widget, visual);
+    }
+
   if (was_mapped)
     gtk_widget_map (widget);
 
diff -Nru gtk+3.0-3.14.4/gtk/resources/theme/Adwaita/_colors-public.scss gtk+3.0-3.14.5/gtk/resources/theme/Adwaita/_colors-public.scss
diff -Nru gtk+3.0-3.14.4/gtk/resources/theme/Adwaita/_colors.scss gtk+3.0-3.14.5/gtk/resources/theme/Adwaita/_colors.scss
diff -Nru gtk+3.0-3.14.4/gtk/resources/theme/Adwaita/_common.scss gtk+3.0-3.14.5/gtk/resources/theme/Adwaita/_common.scss
diff -Nru gtk+3.0-3.14.4/gtk/resources/theme/Adwaita/_drawing.scss gtk+3.0-3.14.5/gtk/resources/theme/Adwaita/_drawing.scss
diff -Nru gtk+3.0-3.14.4/gtk/resources/theme/Adwaita/gtk-contained.css gtk+3.0-3.14.5/gtk/resources/theme/Adwaita/gtk-contained.css
diff -Nru gtk+3.0-3.14.4/gtk/resources/theme/Adwaita/gtk-contained-dark.css gtk+3.0-3.14.5/gtk/resources/theme/Adwaita/gtk-contained-dark.css
diff -Nru gtk+3.0-3.14.4/INSTALL gtk+3.0-3.14.5/INSTALL
diff -Nru gtk+3.0-3.14.4/NEWS gtk+3.0-3.14.5/NEWS
--- gtk+3.0-3.14.4/NEWS	2014-10-21 17:01:58.000000000 +0200
+++ gtk+3.0-3.14.5/NEWS	2014-11-09 22:17:26.000000000 +0100
@@ -1,3 +1,26 @@
+Overview of Changes in GTK+ 3.14.4 to 3.14.5
+============================================
+
+* Bugs fixed:
+ 726316 Backdrop inconvenient on multimonitor for reading text
+ 737561 quartz: gtk+ 3.14.0 fails to build on 10.6.8, 'NSFullScreen...
+ 737891 mounting LUKS partition from nautilus takes very long
+ 738321 GtkMenu has unnecessary scroll buttons
+ 738648 gdk_window_get_content() causes creation/destruction of bac...
+ 738650 fix separator with iconic section and more
+ 738886 Out of bounds access in MyEnhancedXkbTranslateKeyCode`
+ 738955 Client-side decoration window menus appear at wrong positio...
+ 739005 gtkstatusicon.c won't build with both X11 and Quartz backen...
+ 739111 GtkFontChooserDialog fixes 
+
+* Translation updates:
+ Czech
+ German
+ Hungarian
+ Lithuanian
+ Serbian
+
+
 Overview of Changes in GTK+ 3.14.3 to 3.14.4
 ============================================
 
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po/cs.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po/cs.gmo differ
diff -Nru gtk+3.0-3.14.4/po/cs.po gtk+3.0-3.14.5/po/cs.po
diff -Nru gtk+3.0-3.14.4/po/gtk30.pot gtk+3.0-3.14.5/po/gtk30.pot
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po/hu.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po/hu.gmo differ
diff -Nru gtk+3.0-3.14.4/po/hu.po gtk+3.0-3.14.5/po/hu.po
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po/lt.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po/lt.gmo differ
diff -Nru gtk+3.0-3.14.4/po/lt.po gtk+3.0-3.14.5/po/lt.po
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po/sr.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po/sr.gmo differ
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po/sr@latin.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po/sr@latin.gmo differ
diff -Nru gtk+3.0-3.14.4/po/sr@latin.po gtk+3.0-3.14.5/po/sr@latin.po
diff -Nru gtk+3.0-3.14.4/po/sr.po gtk+3.0-3.14.5/po/sr.po
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po-properties/cs.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po-properties/cs.gmo differ
diff -Nru gtk+3.0-3.14.4/po-properties/cs.po gtk+3.0-3.14.5/po-properties/cs.po
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po-properties/de.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po-properties/de.gmo differ
diff -Nru gtk+3.0-3.14.4/po-properties/de.po gtk+3.0-3.14.5/po-properties/de.po
diff -Nru gtk+3.0-3.14.4/po-properties/gtk30-properties.pot gtk+3.0-3.14.5/po-properties/gtk30-properties.pot
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po-properties/hu.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po-properties/hu.gmo differ
diff -Nru gtk+3.0-3.14.4/po-properties/hu.po gtk+3.0-3.14.5/po-properties/hu.po
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po-properties/lt.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po-properties/lt.gmo differ
diff -Nru gtk+3.0-3.14.4/po-properties/lt.po gtk+3.0-3.14.5/po-properties/lt.po
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po-properties/sr.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po-properties/sr.gmo differ
Binary files /tmp/ybBle11f9_/gtk+3.0-3.14.4/po-properties/sr@latin.gmo and /tmp/o1R6O_VkF5/gtk+3.0-3.14.5/po-properties/sr@latin.gmo differ
diff -Nru gtk+3.0-3.14.4/po-properties/sr@latin.po gtk+3.0-3.14.5/po-properties/sr@latin.po
diff -Nru gtk+3.0-3.14.4/po-properties/sr.po gtk+3.0-3.14.5/po-properties/sr.po
diff -Nru gtk+3.0-3.14.4/README gtk+3.0-3.14.5/README


Reply to: