[gtk+/wip/matthiasc/dnd-animation: 4/7] gdk: Add gdk_drag_drop_done
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/dnd-animation: 4/7] gdk: Add gdk_drag_drop_done
- Date: Sun, 13 Dec 2015 21:04:21 +0000 (UTC)
commit c590b83397713c86f099588a9e5de31028f4cc25
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Dec 7 15:07:13 2015 -0500
gdk: Add gdk_drag_drop_done
This will allow us to move the drag cancel animation to GDK.
For now, it does nothing.
gdk/gdkdnd.c | 24 ++++++++++++++++++++++++
gdk/gdkdnd.h | 4 ++++
gdk/gdkdndprivate.h | 2 ++
3 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/gdk/gdkdnd.c b/gdk/gdkdnd.c
index 8a4559e..3009630 100644
--- a/gdk/gdkdnd.c
+++ b/gdk/gdkdnd.c
@@ -503,3 +503,27 @@ gdk_drag_context_set_hotspot (GdkDragContext *context,
if (GDK_DRAG_CONTEXT_GET_CLASS (context)->set_hotspot)
GDK_DRAG_CONTEXT_GET_CLASS (context)->set_hotspot (context, hot_x, hot_y);
}
+
+/**
+ * gdk_drag_drop_done:
+ * @context: a #GdkDragContext
+ * @success: whether the drag was ultimatively successful
+ *
+ * Inform GDK if the drop ended successfully. Passing %FALSE
+ * for @success may trigger a drag cancellation animation.
+ *
+ * This function is called by the drag source, and should
+ * be the last call before dropping the reference to the
+ * @context.
+ *
+ * Since: 3.20
+ */
+void
+gdk_drag_drop_done (GdkDragContext *context,
+ gboolean success)
+{
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+
+ if (GDK_DRAG_CONTEXT_GET_CLASS (context)->drop_done)
+ GDK_DRAG_CONTEXT_GET_CLASS (context)->drop_done (context, success);
+}
diff --git a/gdk/gdkdnd.h b/gdk/gdkdnd.h
index 12a817f..1aa5d07 100644
--- a/gdk/gdkdnd.h
+++ b/gdk/gdkdnd.h
@@ -179,6 +179,10 @@ GDK_AVAILABLE_IN_ALL
gboolean gdk_drag_drop_succeeded (GdkDragContext *context);
GDK_AVAILABLE_IN_3_20
+void gdk_drag_drop_done (GdkDragContext *context,
+ gboolean success);
+
+GDK_AVAILABLE_IN_3_20
GdkWindow *gdk_drag_context_get_drag_window (GdkDragContext *context);
GDK_AVAILABLE_IN_3_20
diff --git a/gdk/gdkdndprivate.h b/gdk/gdkdndprivate.h
index e8a163f..fe2a95d 100644
--- a/gdk/gdkdndprivate.h
+++ b/gdk/gdkdndprivate.h
@@ -66,6 +66,8 @@ struct _GdkDragContextClass {
void (*set_hotspot) (GdkDragContext *context,
gint hot_x,
gint hot_y);
+ void (*drop_done) (GdkDragContext *context,
+ gboolean success);
};
struct _GdkDragContext {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]