events: Make GdkEventDND have a GdkDrop member
authorBenjamin Otte <otte@redhat.com>
Tue, 29 May 2018 18:49:41 +0000 (20:49 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 18 Jun 2018 21:49:52 +0000 (23:49 +0200)
... instead of a GdkDragContext.

gdk/gdkdrop.c
gdk/gdkevents.c
gdk/gdkeventsprivate.h

index 458ad1a65ea01232591a23c7477d2605a98e3609..8155ca4a32f8f89916a410520f44924e32ebaad7 100644 (file)
@@ -594,7 +594,7 @@ gdk_drop_emit_enter_event (GdkDrop  *self,
 
   event = gdk_event_new (GDK_DRAG_ENTER);
   event->any.surface = g_object_ref (priv->surface);
-  event->dnd.context = (GdkDragContext *) g_object_ref (self);
+  event->dnd.drop = g_object_ref (self);
   event->dnd.time = time;
   gdk_event_set_device (event, priv->device);
 
@@ -613,7 +613,7 @@ gdk_drop_emit_motion_event (GdkDrop  *self,
 
   event = gdk_event_new (GDK_DRAG_MOTION);
   event->any.surface = g_object_ref (priv->surface);
-  event->dnd.context = (GdkDragContext *) g_object_ref (self);
+  event->dnd.drop = g_object_ref (self);
   event->dnd.time = time;
   event->dnd.x_root = x_root;
   event->dnd.y_root = y_root;
@@ -632,7 +632,7 @@ gdk_drop_emit_leave_event (GdkDrop  *self,
 
   event = gdk_event_new (GDK_DRAG_LEAVE);
   event->any.surface = g_object_ref (priv->surface);
-  event->dnd.context = (GdkDragContext *) g_object_ref (self);
+  event->dnd.drop = g_object_ref (self);
   event->dnd.time = time;
   gdk_event_set_device (event, priv->device);
 
@@ -651,7 +651,7 @@ gdk_drop_emit_drop_event (GdkDrop  *self,
 
   event = gdk_event_new (GDK_DROP_START);
   event->any.surface = g_object_ref (priv->surface);
-  event->dnd.context = (GdkDragContext *) g_object_ref (self);
+  event->dnd.drop = g_object_ref (self);
   event->dnd.time = time;
   event->dnd.x_root = x_root;
   event->dnd.y_root = y_root;
index aec0782d8c81c361646a071d5cfb7f1bdb234993..272fe4429f3471ca69cb343aaddf82a400880d4e 100644 (file)
@@ -643,7 +643,7 @@ gdk_event_copy (const GdkEvent *event)
     case GDK_DRAG_LEAVE:
     case GDK_DRAG_MOTION:
     case GDK_DROP_START:
-      g_object_ref (event->dnd.context);
+      g_object_ref (event->dnd.drop);
       break;
 
     case GDK_EXPOSE:
@@ -714,8 +714,7 @@ gdk_event_finalize (GObject *object)
     case GDK_DRAG_LEAVE:
     case GDK_DRAG_MOTION:
     case GDK_DROP_START:
-      if (event->dnd.context != NULL)
-        g_object_unref (event->dnd.context);
+      g_clear_object (&event->dnd.drop);
       break;
 
     case GDK_BUTTON_PRESS:
@@ -2077,7 +2076,7 @@ gdk_event_get_drop (const GdkEvent *event)
       event->any.type == GDK_DRAG_MOTION ||
       event->any.type == GDK_DROP_START)
     {
-      return GDK_DROP (event->dnd.context);
+      return event->dnd.drop;
     }
 
   return NULL;
index d2cc705c07e5778a0a8bdf166419d463a0a66342..d79beab2556060466643f5354af257df7e3efc52 100644 (file)
@@ -430,7 +430,7 @@ struct _GdkEventGrabBroken {
  *   %GDK_DRAG_MOTION or %GDK_DROP_START)
  * @surface: the surface which received the event.
  * @send_event: %TRUE if the event was sent explicitly.
- * @context: the #GdkDragContext for the current DND operation.
+ * @drop: the #GdkDrop for the current DND operation.
  * @time: the time of the event in milliseconds.
  * @x_root: the x coordinate of the pointer relative to the root of the
  *   screen, only set for %GDK_DRAG_MOTION and %GDK_DROP_START.
@@ -441,7 +441,7 @@ struct _GdkEventGrabBroken {
  */
 struct _GdkEventDND {
   GdkEventAny any;
-  GdkDragContext *context;
+  GdkDrop *drop;
 
   guint32 time;
   gshort x_root, y_root;