[gtk-osx] Update gtk2 and gtk3 to the latest tarballs.



commit 5ee329a1ab988f5cd623ce8185772d89abe451cd
Author: John Ralls <jralls ceridwen us>
Date:   Thu Feb 11 16:20:42 2016 -0800

    Update gtk2 and gtk3 to the latest tarballs.
    
    Includes updateing the DND sometimes stops working patch.

 modulesets-stable/gtk-osx.modules                  |    9 +-
 ...722-Drag-and-Drop-sometimes-stops-working.patch |  111 ++++----------------
 2 files changed, 27 insertions(+), 93 deletions(-)
---
diff --git a/modulesets-stable/gtk-osx.modules b/modulesets-stable/gtk-osx.modules
index b4f37f2..223e600 100644
--- a/modulesets-stable/gtk-osx.modules
+++ b/modulesets-stable/gtk-osx.modules
@@ -181,8 +181,8 @@
 
   <autotools id="gtk+" autogen-sh="autoreconf"
              autogenargs="--with-gdktarget=quartz --enable-quartz-relocation --disable-introspection">
-    <branch module="gtk+/2.24/gtk+-2.24.28.tar.xz" version="2.24.28"
-            hash="sha256:b2c6441e98bc5232e5f9bba6965075dcf580a8726398f7374d39f90b88ed4656">
+    <branch module="gtk+/2.24/gtk+-2.24.29.tar.xz" version="2.24.28"
+            hash="sha256:0741c59600d3d810a223866453dc2bbb18ce4723828681ba24aa6519c37631b8">
       <!--patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0004-Bug-571582-GtkSelection-implementation-for-quartz.patch";
 strip="1"/-->
       <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch";
 strip="1"/>
       <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch";
 strip="1"/>
@@ -203,11 +203,10 @@
 
   <autotools id="gtk+-3.0" autogen-sh="autogen.sh"
              autogenargs="--enable-quartz-backend --enable-quartz-relocation">
-    <branch module="gtk+/3.16/gtk+-3.16.0.tar.xz" version="3.16.0"
-            hash="sha256:ce617318fe18092383cf6ed5d8c688a95a97f2d4c68481317a6a531e288c26ea">
+    <branch module="gtk+/3.16/gtk+-3.16.7.tar.xz" version="3.16.7"
+            hash="sha256:19689d14de54d182fad538153dbff6d41f53841f940aa871585fdea0306c7fba">
       <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0001-Bug-707945-GTK2-Quartz-typeahead-find-in-GtkTreeView.patch";
 strip="1"/>
 <!-- The following patch is committed and can be removed after release of gtk+-3.16.4. -->
-      <patch 
file="http://git.gnome.org/browse/gtk-osx/plain/patches/0001-Fix-DnD-Introspection-on-Quartz-Backend.patch"; 
strip="1"/>
     </branch>
     <dependencies>
       <dep package="glib"/>
diff --git a/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch 
b/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch
index b0a1ef5..fc27587 100644
--- a/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch
+++ b/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch
@@ -1,66 +1,15 @@
-From dcd9ab00c64a1df63fd5fa58c2ca25efd9b3e09e Mon Sep 17 00:00:00 2001
+From 2bf33d856464d33ed1bd5ab787c9279e464f08df Mon Sep 17 00:00:00 2001
 From: John Ralls <jralls ceridwen us>
-Date: Sat, 24 Sep 2011 18:14:09 -0700
-Subject: [PATCH 06/15] Bug 658722 - Drag and Drop sometimes stops working
+Date: Thu, 11 Feb 2016 15:53:33 -0800
+Subject: [PATCH] Bug-658722-Drag-and-Drop-sometimes-stops-working
 
-First, rather than assuming that there's already an event queued up if
-_gdk_quartz_drag_source_context isn't NULL, assume that it just didn't get
-cleaned up the last time it ran and abort it.
-
-This naturally requires implementing gdk_quartz_drag_abort(), so remove the
-code from [GdkQuartzNSWindow draggedImage:endedAt:operation:] and move it to
-gdkdnd_quartz.c as static void gdk_quartz_drag_end(). Implement both
-gdk_quartz_drag_drop() and gdk_quartz_drag_abort() by calling
-gdk_quartz_drag_end().
-
-Next, try to get rid of the memory cycle between gtk_drag_source_info.context
-and _gdk_quartz_drag_source_context (which carries the GtkQuartzDragSourceInfo
-struct as qdata). Replace gtk_drag_source_clear_info() by using a
-g_object_set_qdata_full() for context in gtk_drag_get_source_context, calling
-gtk_drag_source_info_destroy() as the destructor. This eliminates the need to
-queue a cleanup idle event. I use g_object_run_dispose() on
-_gtk_quartz_drag_source_context to force the deletion of the info stored as
-qdata, which in turn unrefs the info->context pointer. Ordinarily this gets
-fired off from draggedImage:endedAt:operation:, meaning that the special
-dragging CFRunLoop is complete and NSEvents are again flowing, so queuing a
-cleanup event isn't necessary. The advantage is that it can also be run from
-gdk_drag_abort, so if Gdk thinks there's a drag but CF doesn't all of the
-memory still gets cleaned up.
 ---
- gdk/quartz/GdkQuartzWindow.c |   16 +-------
- gdk/quartz/gdkdnd-quartz.c   |   35 +++++++++++++--
- gtk/gtkdnd-quartz.c          |   96 ++++++++++++++++-------------------------
- 3 files changed, 69 insertions(+), 78 deletions(-)
+ gdk/quartz/gdkdnd-quartz.c |  35 ++++-
+ gtk/gtkdnd-quartz.c        | 321 +++++++++++++++++++++------------------------
+ 2 files changed, 179 insertions(+), 177 deletions(-)
 
-diff --git a/gdk/quartz/GdkQuartzWindow.c b/gdk/quartz/GdkQuartzWindow.c
-index dcd7250..20ed80e 100644
---- a/gdk/quartz/GdkQuartzWindow.c
-+++ b/gdk/quartz/GdkQuartzWindow.c
-@@ -560,21 +560,7 @@ update_context_from_dragging_info (id <NSDraggingInfo> sender)
- 
- - (void)draggedImage:(NSImage *)anImage endedAt:(NSPoint)aPoint operation:(NSDragOperation)operation
- {
--  GdkEvent event;
--
--  g_assert (_gdk_quartz_drag_source_context != NULL);
--
--  event.dnd.type = GDK_DROP_FINISHED;
--  event.dnd.window = g_object_ref ([[self contentView] gdkWindow]);
--  event.dnd.send_event = FALSE;
--  event.dnd.context = _gdk_quartz_drag_source_context;
--
--  (*_gdk_event_func) (&event, _gdk_event_data);
--
--  g_object_unref (event.dnd.window);
--
--  g_object_unref (_gdk_quartz_drag_source_context);
--  _gdk_quartz_drag_source_context = NULL;
-+  gdk_drag_drop (_gdk_quartz_drag_source_context, (guint32)g_get_real_time());
- }
- 
- @end
 diff --git a/gdk/quartz/gdkdnd-quartz.c b/gdk/quartz/gdkdnd-quartz.c
-index bb70b71..143a8ed 100644
+index ec89ad2..7a70415 100644
 --- a/gdk/quartz/gdkdnd-quartz.c
 +++ b/gdk/quartz/gdkdnd-quartz.c
 @@ -111,11 +111,20 @@ GdkDragContext *
@@ -127,10 +76,10 @@ index bb70b71..143a8ed 100644
  
  void             
 diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c
-index 5688568..be92a22 100644
+index 62b8570..483525d 100644
 --- a/gtk/gtkdnd-quartz.c
 +++ b/gtk/gtkdnd-quartz.c
-@@ -269,6 +269,39 @@ gtk_drag_dest_info_destroy (gpointer data)
+@@ -270,6 +270,39 @@ gtk_drag_dest_info_destroy (gpointer data)
    g_free (info);
  }
  
@@ -143,7 +92,7 @@ index 5688568..be92a22 100644
 +  if (info->icon_pixbuf)
 +    g_object_unref (info->icon_pixbuf);
 +
-+  g_signal_emit_by_name (info->widget, "drag-end", 
++  g_signal_emit_by_name (info->widget, "drag-end",
 +                       info->context);
 +
 +  if (info->source_widget)
@@ -170,7 +119,7 @@ index 5688568..be92a22 100644
  static GtkDragDestInfo *
  gtk_drag_get_dest_info (GdkDragContext *context,
                        gboolean        create)
-@@ -308,18 +341,14 @@ gtk_drag_get_source_info (GdkDragContext *context,
+@@ -303,18 +336,14 @@ gtk_drag_get_source_info (GdkDragContext *context,
      {
        info = g_new0 (GtkDragSourceInfo, 1);
        info->context = context;
@@ -192,28 +141,11 @@ index 5688568..be92a22 100644
  GtkWidget *
  gtk_drag_get_source_widget (GdkDragContext *context)
  {
-@@ -1089,7 +1118,8 @@ gtk_drag_begin_idle (gpointer arg)
-   [owner release];
-   [types release];
- 
--  if ((nswindow = get_toplevel_nswindow (info->source_widget)) == NULL)
-+  if (info->source_widget == NULL
-+      || (nswindow = get_toplevel_nswindow (info->source_widget)) == NULL)
-      return FALSE;
-   
-   /* Ref the context. It's unreffed when the drag has been aborted */
-@@ -1108,7 +1138,6 @@ gtk_drag_begin_idle (gpointer arg)
-                source:nswindow
-             slideBack:YES];
- 
--  [info->nsevent release];
-   [drag_image release];
- 
-   [pool release];
-@@ -1833,61 +1862,12 @@ gtk_drag_set_default_icon (GdkColormap   *colormap,
+@@ -1888,53 +1917,6 @@ gtk_drag_set_default_icon (GdkColormap   *colormap,
+   g_warning ("gtk_drag_set_default_icon is not supported on Mac OS X.");
  }
  
- static void
+-static void
 -gtk_drag_source_info_destroy (GtkDragSourceInfo *info)
 -{
 -  NSPasteboard *pasteboard;
@@ -253,14 +185,17 @@ index 5688568..be92a22 100644
 -static gboolean
 -drag_drop_finished_idle_cb (gpointer data)
 -{
--  gtk_drag_source_info_destroy (data);
+-  GtkDragSourceInfo* info = (GtkDragSourceInfo*) data;
+-
+-  if (info->success)
+-    gtk_drag_source_info_destroy (data);
+-
 -  return FALSE;
 -}
--
--static void
- gtk_drag_drop_finished (GtkDragSourceInfo *info)
- {
-   if (info->success && info->delete)
+ 
+ static void
+ gtk_drag_drop_finished (GtkDragSourceInfo *info,
+@@ -1950,11 +1932,6 @@ gtk_drag_drop_finished (GtkDragSourceInfo *info,
      g_signal_emit_by_name (info->source_widget, "drag-data-delete",
                             info->context);
  


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