summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2010-10-19 13:26:39 +0200
committerKristian Rietveld <kris@gtk.org>2010-10-19 14:07:39 +0200
commit046ca498de539463309a2e89f386b67d7e9713cf (patch)
tree08db4e9490fe58bf685be4596d8f83e5b342618a
parent8ac7f641235296a502c583cc2aa97e192cdb862b (diff)
downloadgtk+-046ca498de539463309a2e89f386b67d7e9713cf.tar.gz
dnd-quartz: get hot spot from device offset for surface and use this
-rw-r--r--gtk/gtkdnd-quartz.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c
index bc27d1444f..687f1aa606 100644
--- a/gtk/gtkdnd-quartz.c
+++ b/gtk/gtkdnd-quartz.c
@@ -1691,17 +1691,19 @@ gtk_drag_set_icon_surface (GdkDragContext *context,
{
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);
}