]> Pileus Git - ~andy/gtk/commitdiff
tooltip: set the transient parent when using the Wayland backend
authorThomas Wood <thomas.wood@intel.com>
Thu, 7 Feb 2013 11:27:00 +0000 (11:27 +0000)
committerThomas Wood <thomas.wood@intel.com>
Tue, 12 Feb 2013 15:30:56 +0000 (15:30 +0000)
Set the transient parent window on tooltips so that they can be
positioned correctly when using the Wayland backend.

https://bugzilla.gnome.org/show_bug.cgi?id=693313

gtk/gtktooltip.c

index b4e0c954b7a866b1c5810f41eb314d1d6812133f..aba9ffb38a173b8be9a9a377bc19c76c4c9f05d2 100644 (file)
 #include "gtkwindowprivate.h"
 
 
+#ifdef GDK_WINDOWING_WAYLAND
+#include "wayland/gdkwayland.h"
+#endif
+
+
 /**
  * SECTION:gtktooltip
  * @Short_description: Add tips to your widgets
@@ -1200,6 +1205,20 @@ found:
             y = tooltip->last_y - height - 2;
         }
 
+#ifdef GDK_WINDOWING_WAYLAND
+      /* set the transient parent on the tooltip when running with the Wayland
+       * backend to allow correct positioning of the tooltip windows */
+      if (GDK_IS_WAYLAND_DISPLAY (display))
+        {
+          GtkWidget *toplevel;
+
+          toplevel = gtk_widget_get_toplevel (tooltip->tooltip_widget);
+          if (GTK_IS_WINDOW (toplevel))
+            gtk_window_set_transient_for (GTK_WINDOW (tooltip->current_window),
+                                          GTK_WINDOW (toplevel));
+        }
+#endif
+
       gtk_window_move (GTK_WINDOW (tooltip->current_window), x, y);
       gtk_widget_show (GTK_WIDGET (tooltip->current_window));
     }