#include "gdkenumtypes.h"
#include "gdkeventsprivate.h"
+typedef struct _GdkDragContextPrivate GdkDragContextPrivate;
+
+struct _GdkDragContextPrivate
+{
+ GdkDisplay *display;
+ GdkDevice *device;
+};
+
static struct {
GdkDragAction action;
const gchar *name;
static guint signals[N_SIGNALS] = { 0 };
static GList *contexts = NULL;
+G_DEFINE_TYPE_WITH_PRIVATE (GdkDragContext, gdk_drag_context, G_TYPE_OBJECT)
+
/**
* SECTION:dnd
* @title: Drag And Drop
GdkDisplay *
gdk_drag_context_get_display (GdkDragContext *context)
{
- return context->display;
+ GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context);
+
+ g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL);
+
+ return priv->display;
}
/**
GdkDevice *
gdk_drag_context_get_device (GdkDragContext *context)
{
+ GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context);
+
g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), NULL);
- return context->device;
+ return priv->device;
}
-G_DEFINE_TYPE (GdkDragContext, gdk_drag_context, G_TYPE_OBJECT)
-
static void
gdk_drag_context_init (GdkDragContext *context)
{
GParamSpec *pspec)
{
GdkDragContext *context = GDK_DRAG_CONTEXT (gobject);
+ GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context);
switch (prop_id)
{
break;
case PROP_DEVICE:
- context->device = g_value_dup_object (value);
- g_assert (context->device != NULL);
- context->display = gdk_device_get_display (context->device);
+ priv->device = g_value_dup_object (value);
+ g_assert (priv->device != NULL);
+ priv->display = gdk_device_get_display (priv->device);
break;
default:
GParamSpec *pspec)
{
GdkDragContext *context = GDK_DRAG_CONTEXT (gobject);
+ GdkDragContextPrivate *priv = gdk_drag_context_get_instance_private (context);
switch (prop_id)
{
break;
case PROP_DEVICE:
- g_value_set_object (value, context->device);
+ g_value_set_object (value, priv->device);
break;
case PROP_DISPLAY:
- g_value_set_object (value, context->display);
+ g_value_set_object (value, priv->display);
break;
case PROP_FORMATS:
gint y_root,
GdkDragProtocol *protocol)
{
- GdkX11Screen *screen_x11 = GDK_X11_SCREEN(GDK_X11_DISPLAY (context->display)->screen);
+ GdkX11Screen *screen_x11;
GdkX11DragContext *context_x11 = GDK_X11_DRAG_CONTEXT (context);
GdkSurfaceCache *window_cache;
GdkDisplay *display;
GdkSurface *dest_surface;
display = gdk_drag_context_get_display (context);
+ screen_x11 = GDK_X11_SCREEN(GDK_X11_DISPLAY (display)->screen);
window_cache = drag_context_find_window_cache (context_x11, display);
g_set_object (&x11_context->grab_seat, seat);
- gdk_x11_display_error_trap_push (context->display);
+ gdk_x11_display_error_trap_push (display);
for (i = 0; i < G_N_ELEMENTS (grab_keys); ++i)
{
}
}
- gdk_x11_display_error_trap_pop_ignored (context->display);
+ gdk_x11_display_error_trap_pop_ignored (display);
return TRUE;
}