From 03a313d2a9ba03b4d60c50a7235dbfb527e05cd6 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Tue, 29 Jun 2010 13:10:44 +0200 Subject: [PATCH] Implement gdk_drag_context_{get,set}_device in Quartz backend --- gdk/quartz/gdkdnd-quartz.c | 50 ++++++++++++++++++++++++++++++++++ gdk/quartz/gdkprivate-quartz.h | 1 + 2 files changed, 51 insertions(+) diff --git a/gdk/quartz/gdkdnd-quartz.c b/gdk/quartz/gdkdnd-quartz.c index 2292d1fbb..a33030044 100644 --- a/gdk/quartz/gdkdnd-quartz.c +++ b/gdk/quartz/gdkdnd-quartz.c @@ -87,6 +87,56 @@ gdk_drag_context_new (void) return (GdkDragContext *)g_object_new (gdk_drag_context_get_type (), NULL); } +/** + * gdk_drag_context_set_device: + * @context: a #GdkDragContext + * @device: a #GdkDevice + * + * Associates a #GdkDevice to @context, so all Drag and Drop events + * for @context are emitted as if they came from this device. + **/ +void +gdk_drag_context_set_device (GdkDragContext *context, + GdkDevice *device) +{ + GdkDragContextPrivate *private; + + g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + g_return_if_fail (GDK_IS_DEVICE (device)); + + private = GDK_DRAG_CONTEXT_PRIVATE (context); + + if (private->device) + { + g_object_unref (private->device); + private->device = NULL; + } + + if (device) + private->device = g_object_ref (device); +} + +/** + * gdk_drag_context_get_device: + * @context: a #GdkDragContext + * + * Returns the #GdkDevice associated to the drag context. + * + * Returns: The #GdkDevice associated to @context. + **/ +GdkDevice * +gdk_drag_context_get_device (GdkDragContext *context) +{ + GdkDragContextPrivate *private; + + g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL); + + private = GDK_DRAG_CONTEXT_PRIVATE (context); + + return private->device; +} + + GdkDragContext *_gdk_quartz_drag_source_context = NULL; GdkDragContext * diff --git a/gdk/quartz/gdkprivate-quartz.h b/gdk/quartz/gdkprivate-quartz.h index b1421fd74..dc747e479 100644 --- a/gdk/quartz/gdkprivate-quartz.h +++ b/gdk/quartz/gdkprivate-quartz.h @@ -94,6 +94,7 @@ struct _GdkCursorPrivate struct _GdkDragContextPrivate { id dragging_info; + GdkDevice *device; }; extern GdkDisplay *_gdk_display; -- 2.43.2