[gtk-osx] Update gtk2 and gtk3 to the latest tarballs.
- From: John Ralls <jralls src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk-osx] Update gtk2 and gtk3 to the latest tarballs.
- Date: Fri, 12 Feb 2016 00:21:13 +0000 (UTC)
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]