From db00ab9c02e28615a4c402fccab0c3e8cbc43f71 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Thu, 7 Dec 2017 10:51:57 -0800 Subject: [PATCH] Avoid gtk_show_uri() with GTK+3.9x --- src/gtk/window.cpp | 7 +++++++ src/unix/utilsx11.cpp | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 617e2c79a6..1d5d645edb 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -345,6 +345,13 @@ static bool wxGetTopLevel(GtkWidget** widget, GdkWindow** window) return false; } +GtkWidget* wxGetTopLevelGTK() +{ + GtkWidget* widget = NULL; + wxGetTopLevel(&widget, NULL); + return widget; +} + GdkWindow* wxGetTopLevelGDK() { GdkWindow* window; diff --git a/src/unix/utilsx11.cpp b/src/unix/utilsx11.cpp index 970d58ac49..421ae4b55d 100644 --- a/src/unix/utilsx11.cpp +++ b/src/unix/utilsx11.cpp @@ -45,6 +45,7 @@ #endif #endif GdkWindow* wxGetTopLevelGDK(); +GtkWidget* wxGetTopLevelGTK(); #endif // Only X11 backend is supported for wxGTK here @@ -2679,12 +2680,20 @@ bool wxDoLaunchDefaultBrowser(const wxLaunchBrowserParams& params) { #ifdef __WXGTK__ -#if GTK_CHECK_VERSION(2,14,0) +#if GTK_CHECK_VERSION(3,90,0) + if (gtk_show_uri_on_window((GtkWindow*)wxGetTopLevelGTK(), + params.url.utf8_str(), GDK_CURRENT_TIME, NULL)) + { + return true; + } +#elif GTK_CHECK_VERSION(2,14,0) if (wx_is_at_least_gtk2(14)) { GdkScreen* screen = gdk_window_get_screen(wxGetTopLevelGDK()); + wxGCC_WARNING_SUPPRESS(deprecated-declarations) if (gtk_show_uri(screen, params.url.utf8_str(), GDK_CURRENT_TIME, NULL)) return true; + wxGCC_WARNING_RESTORE() } #endif // GTK_CHECK_VERSION(2,14,0) #endif // __WXGTK__