[gtk+] Implement gdk_drag_context_{get,set}_device in Quartz backend
- From: Kristian Rietveld <kristian src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Implement gdk_drag_context_{get,set}_device in Quartz backend
- Date: Wed, 30 Jun 2010 09:15:50 +0000 (UTC)
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]