tooltip: Get the pointer position relative to the toplevel widget

Since we position the tooltip window relative to the toplevel widget and
not actually relative to the effective_toplevel, we shouldn't get the
pointer position relative to the effective_toplevel.

We previously used the pointer position (relative to the
effective_toplevel) and the anchor rect (relative to the toplevel
widget) together to calculate x_distance. This leads to wrong values in
cases where get_surface (new_tooltip_widget) != get_surface (toplevel)

Fixes #1427 in master
This commit is contained in:
Timm Bäder 2019-02-03 07:04:39 +01:00
parent 47ba423eca
commit 257df1d8b5

View File

@ -625,7 +625,7 @@ gtk_tooltip_position (GtkTooltip *tooltip,
* If the anchor rectangle isn't to tall, make sure the tooltip isn't too
* far away from the pointer position.
*/
effective_toplevel = _gtk_widget_get_surface (new_tooltip_widget);
effective_toplevel = _gtk_widget_get_surface (toplevel);
gdk_surface_get_device_position (effective_toplevel,
device,
&pointer_x, &pointer_y, NULL);