]> Pileus Git - ~andy/gtk/commitdiff
dnd-quartz: get hot spot from device offset for surface and use this
authorKristian Rietveld <kris@gtk.org>
Tue, 19 Oct 2010 11:26:39 +0000 (13:26 +0200)
committerKristian Rietveld <kris@gtk.org>
Tue, 19 Oct 2010 12:07:39 +0000 (14:07 +0200)
gtk/gtkdnd-quartz.c

index bc27d1444f2294d4eab37f2b07040e2067c746a7..687f1aa606c8c7769784de5df328a87effcf56b5 100644 (file)
@@ -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);
 }