#include <stdlib.h>
#include <string.h>
-#include "gdkconfig.h"
-
-#include "gdk/gdkkeysyms.h"
+#include "gdk/gdk.h"
#include "gtkdnd.h"
#include "gtkiconfactory.h"
drag_image = _gtk_quartz_create_image_from_pixbuf (info->icon_pixbuf);
+ point.x -= info->hot_x;
+ point.y -= info->hot_y;
+
[nswindow dragImage:drag_image
at:point
offset:NSMakeSize(0, 0)
if (stock_id)
{
- pixbuf = gtk_widget_render_icon (info->widget, stock_id,
- GTK_ICON_SIZE_DND, NULL);
+ pixbuf = gtk_widget_render_icon_pixbuf (info->widget, stock_id,
+ GTK_ICON_SIZE_DND, NULL);
if (!pixbuf)
{
{
GdkPixbuf *pixbuf;
GdkRectangle extents;
+ double x_offset, y_offset;
g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
g_return_if_fail (context->is_source);
g_return_if_fail (surface != NULL);
_gtk_cairo_surface_extents (surface, &extents);
+ cairo_surface_get_device_offset (surface, &x_offset, &y_offset);
pixbuf = gdk_pixbuf_get_from_surface (surface,
extents.x, extents.y,
extents.width, extents.height);
- gtk_drag_set_icon_pixbuf (context, pixbuf, 0, 0);
+ gtk_drag_set_icon_pixbuf (context, pixbuf, -x_offset, -y_offset);
g_object_unref (pixbuf);
}