From 7fe07b6eb0831757c3ebf03c58cdf8dadec27657 Mon Sep 17 00:00:00 2001 From: Ole Christian Eidheim Date: Fri, 20 May 2016 08:54:47 +0200 Subject: [PATCH] Improved Wayland support: correctly set transient on all windows --- src/selectiondialog.cc | 7 ++++++- src/tooltips.cc | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/selectiondialog.cc b/src/selectiondialog.cc index 5613c93..9c6a232 100644 --- a/src/selectiondialog.cc +++ b/src/selectiondialog.cc @@ -49,6 +49,12 @@ list_view_text(use_markup), start_mark(start_mark), show_search_entry(show_searc window=std::unique_ptr(new Gtk::Window(Gtk::WindowType::WINDOW_POPUP)); else window=std::unique_ptr(new Gtk::Dialog()); + + auto g_application=g_application_get_default(); + auto gio_application=Glib::wrap(g_application, true); + auto application=Glib::RefPtr::cast_static(gio_application); + window->set_transient_for(*application->get_active_window()); + list_view_text.set_search_entry(search_entry); window->set_default_size(0, 0); @@ -78,7 +84,6 @@ list_view_text(use_markup), start_mark(start_mark), show_search_entry(show_searc auto dialog=static_cast(window.get()); dialog->get_vbox()->pack_start(search_entry, false, false); dialog->get_vbox()->pack_start(scrolled_window, true, true); - dialog->set_transient_for(*static_cast(text_view.get_toplevel())); } } diff --git a/src/tooltips.cc b/src/tooltips.cc index b177f62..b1068e6 100644 --- a/src/tooltips.cc +++ b/src/tooltips.cc @@ -51,6 +51,11 @@ void Tooltip::adjust(bool disregard_drawn) { //init window window=std::unique_ptr(new Gtk::Window(Gtk::WindowType::WINDOW_POPUP)); + auto g_application=g_application_get_default(); + auto gio_application=Glib::wrap(g_application, true); + auto application=Glib::RefPtr::cast_static(gio_application); + window->set_transient_for(*application->get_active_window()); + window->set_events(Gdk::POINTER_MOTION_MASK); window->signal_motion_notify_event().connect([this](GdkEventMotion* event){ window->hide();