From edee40a179021323ebc0f7aafff506be3d34ef55 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Mon, 4 Jul 2022 20:36:38 +0400 Subject: QGtk3Theme: Use GDK X11-specific API only built with X11 And respect xlib config option Pick-to: 6.4 6.3 6.2 Change-Id: I596097259ed008357e739c3cfe41ab2fc4e18db7 Reviewed-by: Dmitry Shachnev Reviewed-by: Liang Qi --- src/plugins/platformthemes/gtk3/CMakeLists.txt | 9 ++++++++- src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src/plugins/platformthemes') diff --git a/src/plugins/platformthemes/gtk3/CMakeLists.txt b/src/plugins/platformthemes/gtk3/CMakeLists.txt index 62e752bd92..03756688ee 100644 --- a/src/plugins/platformthemes/gtk3/CMakeLists.txt +++ b/src/plugins/platformthemes/gtk3/CMakeLists.txt @@ -1,7 +1,10 @@ # Generated from gtk3.pro. qt_find_package(GTK3) # special case -qt_find_package(X11) # special case + +if(QT_FEATURE_xlib) + qt_find_package(X11) # special case +endif() ##################################################################### ## QGtk3ThemePlugin Plugin: @@ -24,6 +27,10 @@ qt_internal_add_plugin(QGtk3ThemePlugin Qt::CorePrivate Qt::Gui Qt::GuiPrivate +) + +qt_internal_extend_target(QGtk3ThemePlugin CONDITION QT_FEATURE_xlib + LIBRARIES X11::X11 # special case ) diff --git a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp index 1fb6a22b31..9826d1f4b1 100644 --- a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp +++ b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp @@ -17,9 +17,12 @@ #undef signals #include #include -#include #include +#if QT_CONFIG(xlib) && defined(GDK_WINDOWING_X11) +#include +#endif + // The size of the preview we display for selected image files. We set height // larger than width because generally there is more free space vertically // than horizontally (setting the preview image will always expand the width of @@ -105,12 +108,14 @@ bool QGtk3Dialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWind GdkWindow *gdkWindow = gtk_widget_get_window(gtkWidget); if (parent) { +#if QT_CONFIG(xlib) && defined(GDK_WINDOWING_X11) if (GDK_IS_X11_WINDOW(gdkWindow)) { GdkDisplay *gdkDisplay = gdk_window_get_display(gdkWindow); XSetTransientForHint(gdk_x11_display_get_xdisplay(gdkDisplay), gdk_x11_window_get_xid(gdkWindow), parent->winId()); } +#endif } if (modality != Qt::NonModal) { -- cgit v1.2.3