-
Olivier Fourdan authored
When the GtkWidget hierarchy does not match the GdkWindow hierarchy, the GtkWidget code may find a common ancestor that cannot be found while traversing the GdkWindow tree using gdk_window_get_effective_parent(). This happens with for example on Wayland, a GtkPopover has another GtkPopover as parent, in this case, the GdkWindow parent is the root window, whereas the GtkWidget parent is the other GtkPopover. That confuses the gtk_widget_translate_coordinates() logic which will bail out in this case and won't return the translated coordinates. Make gdk_window_get_effective_parent() aware of subsurfaces and use the transient_for which represents the actual parent (whereas the parent might be pointing to the root window). Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=774148
e5b63759