GtkMenu: Take offscreen windows in account for positioning
authorLuca Bacci <luca.bacci982@gmail.com>
Thu, 13 Jul 2023 14:24:55 +0000 (16:24 +0200)
committerRaspbian forward porter <root@raspbian.org>
Wed, 22 Nov 2023 04:54:09 +0000 (04:54 +0000)
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6184
Origin: 3.24.39, commit:272b6b4febb3e293239e178410f87abcad85ba2d

Gbp-Pq: Name GtkMenu-Take-offscreen-windows-in-account-for-positioning.patch

gtk/gtkmenu.c

index eac972bb41b48af6f220a8578cb2ca6a67df694d..3f1a7bc9fac66355880481b9814857693f466ae5 100644 (file)
@@ -5263,6 +5263,24 @@ gtk_menu_position (GtkMenu  *menu,
         }
     }
 
+  if (rect_window != NULL &&
+      GDK_WINDOW_TYPE (rect_window) == GDK_WINDOW_OFFSCREEN)
+    {
+      GdkWindow *effective = gdk_offscreen_window_get_embedder (rect_window);
+
+      if (effective)
+        {
+          double x = rect.x, y = rect.y;
+
+          gdk_window_coords_to_parent (rect_window, x, y, &x, &y);
+
+          rect.x = x;
+          rect.y = y;
+        }
+
+      rect_window = effective;
+    }
+
   if (!rect_window)
     {
       gtk_window_set_unlimited_guessed_size (GTK_WINDOW (priv->toplevel),