From b5d665fbc11fdf55ddd8c4f22b8962be09463707 Mon Sep 17 00:00:00 2001 From: Neil Date: Wed, 4 Jan 2017 09:30:05 +1100 Subject: Fix display of autocompletion lists and calltips on GTK+ 3.22 on Wayland by setting the owning window by calling gtk_window_set_transient_for. --- gtk/PlatGTK.cxx | 6 +++++- gtk/ScintillaGTK.cxx | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'gtk') diff --git a/gtk/PlatGTK.cxx b/gtk/PlatGTK.cxx index 055a318a4..f0377d238 100644 --- a/gtk/PlatGTK.cxx +++ b/gtk/PlatGTK.cxx @@ -1401,7 +1401,7 @@ static void StyleSet(GtkWidget *w, GtkStyle*, void*) { #endif } -void ListBoxX::Create(Window &, int, Point, int, bool, int) { +void ListBoxX::Create(Window &parent, int, Point, int, bool, int) { if (widCached != 0) { wid = widCached; return; @@ -1475,6 +1475,10 @@ void ListBoxX::Create(Window &, int, Point, int, bool, int) { gtk_widget_show(widget); g_signal_connect(G_OBJECT(widget), "button_press_event", G_CALLBACK(ButtonPress), this); + + GtkWidget *top = gtk_widget_get_toplevel(static_cast(parent.GetID())); + gtk_window_set_transient_for(GTK_WINDOW(static_cast(wid)), + GTK_WINDOW(top)); } void ListBoxX::SetFont(Font &scint_font) { diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index ae7ff7a16..e6bafc938 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -1301,6 +1301,9 @@ void ScintillaGTK::CreateCallTipWindow(PRectangle rc) { G_CALLBACK(ScintillaGTK::PressCT), static_cast(this)); gtk_widget_set_events(widcdrw, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK); + GtkWidget *top = gtk_widget_get_toplevel(static_cast(wMain.GetID())); + gtk_window_set_transient_for(GTK_WINDOW(static_cast(PWidget(ct.wCallTip))), + GTK_WINDOW(top)); } gtk_widget_set_size_request(PWidget(ct.wDraw), rc.Width(), rc.Height()); ct.wDraw.Show(); -- cgit v1.2.3