QGtk3Theme: Use GDK X11-specific API only built with X11
And respect xlib config option Change-Id: I596097259ed008357e739c3cfe41ab2fc4e18db7 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit edee40a179021323ebc0f7aafff506be3d34ef55) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
47b99a474c
commit
199d22e597
@ -1,7 +1,10 @@
|
|||||||
# Generated from gtk3.pro.
|
# Generated from gtk3.pro.
|
||||||
|
|
||||||
qt_find_package(GTK3) # special case
|
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:
|
## QGtk3ThemePlugin Plugin:
|
||||||
@ -24,6 +27,10 @@ qt_internal_add_plugin(QGtk3ThemePlugin
|
|||||||
Qt::CorePrivate
|
Qt::CorePrivate
|
||||||
Qt::Gui
|
Qt::Gui
|
||||||
Qt::GuiPrivate
|
Qt::GuiPrivate
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_internal_extend_target(QGtk3ThemePlugin CONDITION QT_FEATURE_xlib
|
||||||
|
LIBRARIES
|
||||||
X11::X11 # special case
|
X11::X11 # special case
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -17,9 +17,12 @@
|
|||||||
#undef signals
|
#undef signals
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#include <gdk/gdk.h>
|
#include <gdk/gdk.h>
|
||||||
#include <gdk/gdkx.h>
|
|
||||||
#include <pango/pango.h>
|
#include <pango/pango.h>
|
||||||
|
|
||||||
|
#if QT_CONFIG(xlib) && defined(GDK_WINDOWING_X11)
|
||||||
|
#include <gdk/gdkx.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
// The size of the preview we display for selected image files. We set height
|
// 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
|
// larger than width because generally there is more free space vertically
|
||||||
// than horizontally (setting the preview image will always expand the width of
|
// 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);
|
GdkWindow *gdkWindow = gtk_widget_get_window(gtkWidget);
|
||||||
if (parent) {
|
if (parent) {
|
||||||
|
#if QT_CONFIG(xlib) && defined(GDK_WINDOWING_X11)
|
||||||
if (GDK_IS_X11_WINDOW(gdkWindow)) {
|
if (GDK_IS_X11_WINDOW(gdkWindow)) {
|
||||||
GdkDisplay *gdkDisplay = gdk_window_get_display(gdkWindow);
|
GdkDisplay *gdkDisplay = gdk_window_get_display(gdkWindow);
|
||||||
XSetTransientForHint(gdk_x11_display_get_xdisplay(gdkDisplay),
|
XSetTransientForHint(gdk_x11_display_get_xdisplay(gdkDisplay),
|
||||||
gdk_x11_window_get_xid(gdkWindow),
|
gdk_x11_window_get_xid(gdkWindow),
|
||||||
parent->winId());
|
parent->winId());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modality != Qt::NonModal) {
|
if (modality != Qt::NonModal) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user