[gtk-osx] Update to gtk+-3.10.1



commit 15761ef7ea91593cde754cefb7f7a5348bfa1487
Author: John Ralls <jralls ceridwen us>
Date:   Fri Oct 11 11:22:02 2013 -0700

    Update to gtk+-3.10.1
    
    With some additional patches. Fixes some significant crashes,
    particularly in drag and drop.

 modulesets-stable/gtk-osx.modules                  |    7 +++-
 ...03-Fix-double-free-introduced-in-f86dc163.patch |   25 +++++++++++++++
 .../0003-quartz-NULL-check-on-default-keymap.patch |   28 +++++++++++++++++
 ...and-dest-are-GdkWindows-in-_gdk_sythesize.patch |   32 ++++++++++++++++++++
 4 files changed, 90 insertions(+), 2 deletions(-)
---
diff --git a/modulesets-stable/gtk-osx.modules b/modulesets-stable/gtk-osx.modules
index bcb47a9..a2e395e 100644
--- a/modulesets-stable/gtk-osx.modules
+++ b/modulesets-stable/gtk-osx.modules
@@ -173,9 +173,12 @@
 
   <autotools id="gtk+-3.0" autogen-sh="autogen.sh"
              autogenargs="--enable-quartz-backend --enable-quartz-relocation">
-    <branch module="gtk+/3.10/gtk+-3.10.0.tar.xz" version="3.10.0"
-            hash="sha256:6559feb360cd935d341cd7a0b69a72f8f4346ed6ee9b7c4040c02b73b75c53fe">
+    <branch module="gtk+/3.10/gtk+-3.10.1.tar.xz" version="3.10.1"
+            hash="sha256:c12e6897fb1ec8d8f1a6de6cd0ac1372fee6fd63ee3a5a63813dc5f3473e6ab8">
       <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0001-Bug-708998-Avoid-infinite-loop.patch"; strip="1"/>
+      <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0004-Ensure-src-and-dest-are-GdkWindows-in-_gdk_sythesize.patch";
 strip="1"/>
+      <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0003-Fix-double-free-introduced-in-f86dc163.patch"; 
strip="1"/>
+      <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0003-quartz-NULL-check-on-default-keymap.patch"; 
strip="1"/>
     </branch>
     <dependencies>
       <dep package="glib"/>
diff --git a/patches/0003-Fix-double-free-introduced-in-f86dc163.patch 
b/patches/0003-Fix-double-free-introduced-in-f86dc163.patch
new file mode 100644
index 0000000..d6db4a3
--- /dev/null
+++ b/patches/0003-Fix-double-free-introduced-in-f86dc163.patch
@@ -0,0 +1,25 @@
+From 5c820fe22d7484f1f09ebe4c59491c1c5dde34d7 Mon Sep 17 00:00:00 2001
+From: John Ralls <jralls ceridwen us>
+Date: Fri, 11 Oct 2013 10:40:26 -0700
+Subject: [PATCH 3/4] Fix double-free introduced in f86dc163
+
+---
+ gtk/gtkdnd-quartz.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c
+index 1ec5db5..11a4855 100644
+--- a/gtk/gtkdnd-quartz.c
++++ b/gtk/gtkdnd-quartz.c
+@@ -1263,7 +1263,7 @@ gtk_drag_begin_internal (GtkWidget         *widget,
+   window = [(id<GdkNSView>)[nswindow contentView] gdkWindow];
+   g_return_val_if_fail (nsevent != NULL, NULL);
+ 
+-  context = gdk_drag_begin (window, target_list->list);
++  context = gdk_drag_begin (window, g_list_copy (target_list->list));
+   g_return_val_if_fail (context != NULL, NULL);
+ 
+   info = gtk_drag_get_source_info (context, TRUE);
+-- 
+1.8.3.rc0
+
diff --git a/patches/0003-quartz-NULL-check-on-default-keymap.patch 
b/patches/0003-quartz-NULL-check-on-default-keymap.patch
new file mode 100644
index 0000000..cff1aa9
--- /dev/null
+++ b/patches/0003-quartz-NULL-check-on-default-keymap.patch
@@ -0,0 +1,28 @@
+From 041605bc50c7f06cb4aab5c3fd7c1189854c810c Mon Sep 17 00:00:00 2001
+From: Philip Chimento <philip chimento gmail com>
+Date: Tue, 27 Aug 2013 23:46:22 -0700
+Subject: [PATCH 3/5] [quartz] NULL check on default keymap
+
+Ensure that Quartz's default keymap is not accessed before it is
+created.
+---
+ gdk/quartz/gdkkeys-quartz.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c
+index 8ecf79e..d2b5110 100644
+--- a/gdk/quartz/gdkkeys-quartz.c
++++ b/gdk/quartz/gdkkeys-quartz.c
+@@ -492,7 +492,8 @@ update_keymap (void)
+         p[0] = known_numeric_keys[i].keypad_keyval;
+     }
+ 
+-  g_signal_emit_by_name (default_keymap, "keys-changed");
++  if (default_keymap != NULL)
++    g_signal_emit_by_name (default_keymap, "keys-changed");
+ }
+ 
+ static PangoDirection
+-- 
+1.7.12.4 (Apple Git-37)
+
diff --git a/patches/0004-Ensure-src-and-dest-are-GdkWindows-in-_gdk_sythesize.patch 
b/patches/0004-Ensure-src-and-dest-are-GdkWindows-in-_gdk_sythesize.patch
new file mode 100644
index 0000000..d6b2444
--- /dev/null
+++ b/patches/0004-Ensure-src-and-dest-are-GdkWindows-in-_gdk_sythesize.patch
@@ -0,0 +1,32 @@
+From 3ca7cfe29b62883d7cfe736216deadfe35c9116c Mon Sep 17 00:00:00 2001
+From: John Ralls <jralls ceridwen us>
+Date: Fri, 11 Oct 2013 10:40:50 -0700
+Subject: [PATCH 4/4] Ensure src and dest are GdkWindows in
+ _gdk_sythesize_crossing_events
+
+Discovered via a crash because b's (dest's) toplevel was NULL;
+ensuring that the dest is actually a GdkWindow or setting b to NULL
+prevents that path from being taken.
+---
+ gdk/gdkwindow.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
+index 7437552..ee10901 100644
+--- a/gdk/gdkwindow.c
++++ b/gdk/gdkwindow.c
+@@ -7570,8 +7570,9 @@ _gdk_synthesize_crossing_events (GdkDisplay                 *display,
+ 
+   /* TODO: Don't send events to toplevel, as we get those from the windowing system */
+ 
+-  a = src;
+-  b = dest;
++  a = (src && GDK_IS_WINDOW (src)) ? src : NULL;
++  b = (dest && GDK_IS_WINDOW (dest)) ? dest : NULL;
++
+   if (src == dest)
+     return; /* No crossings generated between src and dest */
+ 
+-- 
+1.8.3.rc0
+


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