[gtk+] Implement gdk_drag_context_{get,set}_device in Quartz backend



commit 03a313d2a9ba03b4d60c50a7235dbfb527e05cd6
Author: Kristian Rietveld <kris gtk org>
Date:   Tue Jun 29 13:10:44 2010 +0200

    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(+), 0 deletions(-)
---
diff --git a/gdk/quartz/gdkdnd-quartz.c b/gdk/quartz/gdkdnd-quartz.c
index 2292d1f..a330300 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 b1421fd..dc747e4 100644
--- a/gdk/quartz/gdkprivate-quartz.h
+++ b/gdk/quartz/gdkprivate-quartz.h
@@ -94,6 +94,7 @@ struct _GdkCursorPrivate
 struct _GdkDragContextPrivate
 {
   id <NSDraggingInfo> dragging_info;
+  GdkDevice *device;
 };
 
 extern GdkDisplay *_gdk_display;



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