widget: Adapt translate_coordinates to coordinate changes

This commit is contained in:
Timm Bäder 2017-05-30 16:20:01 +02:00 committed by Matthias Clasen
parent e3bd1e10e8
commit 241a009938

View File

@ -6951,21 +6951,24 @@ static void
translate_coordinates (GdkEvent *event,
GtkWidget *widget)
{
GtkWidget *event_widget;
gdouble xd, yd;
gint x, y;
double x, y;
if (!gdk_event_get_coords (event, &xd, &yd))
if (!gdk_event_get_coords (event, &x, &y))
return;
event_widget = gtk_get_event_widget (event);
/* FIXME: loses precision */
x = xd;
y = yd;
gtk_widget_translate_coordinates (event_widget, widget,
x, y, &x, &y);
/* @event's coordinates are in toplevel coordinates, so we can simply
* walk up the hierarchy starting at @widget to translate the coordinates. */
while (widget)
{
GtkAllocation alloc;
_gtk_widget_get_allocation (widget, &alloc);
x -= alloc.x;
y -= alloc.y;
widget = _gtk_widget_get_parent (widget);
}
/*g_message ("New coords for %p: %d/%d (widget %s)", event, x, y, G_OBJECT_TYPE_NAME (widget));*/
gdk_event_set_coords (event, x, y);
}