GtkEntryCompletion: position using gdk_window_move_to_rect()

In Wayland, on every monitor except the left-most the popup was displayed far to the right of where it should be.

Move part of the code that used to guess "above" or "below" into a new callback that has the information where the popup ended up.

There are 2 non-obvious changes needed:

  • gdk_window_wayland_move_to_rect() doesn't actually do anything, the action happens only when the window is shown

  • gdk_wayland_window_map() prefers GDK_WINDOW_SUBSURFACE special case over pop-up special case, so gtk_window_set_use_subsurface() must not be called.

Fixes: #2794

Merge request reports

Loading