aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Gräßlin <mgraesslin@kde.org>2014-03-06 15:01:36 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-08 11:45:34 +0100
commit0b2d73d725354def897d883fa164c263001c4693 (patch)
tree0261b1468683f4dcda061a7972834b38fd07e05d
parentd229decb2d9d91e407d3fb97694684a4a774cc9b (diff)
Use nativeResourceForIntegration "rootWindow" to get the appRootWindow
As the native interface can provide the root window it's better to use that instead of going through QDesktopWidget. Change-Id: I0a7b475b5ef2a802f603b29762bf2d9033dfa13d Reviewed-by: David Faure <david.faure@kdab.com>
-rw-r--r--src/x11extras/qx11info_x11.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/x11extras/qx11info_x11.cpp b/src/x11extras/qx11info_x11.cpp
index 8bea591..8295243 100644
--- a/src/x11extras/qx11info_x11.cpp
+++ b/src/x11extras/qx11info_x11.cpp
@@ -160,18 +160,11 @@ unsigned long QX11Info::appRootWindow(int screen)
{
if (!qApp)
return 0;
-#if 0
- // This looks like it should work, but gives the wrong value.
- QDesktopWidget *desktop = QApplication::desktop();
- QWidget *screenWidget = desktop->screen(screen);
- QWindow *window = screenWidget->windowHandle();
-#else
Q_UNUSED(screen);
-
- QDesktopWidget *desktop = QApplication::desktop();
- QWindow *window = desktop->windowHandle();
-#endif
- return window->winId();
+ QPlatformNativeInterface *native = qApp->platformNativeInterface();
+ if (!native)
+ return 0;
+ return static_cast<xcb_window_t>(reinterpret_cast<quintptr>(native->nativeResourceForIntegration(QByteArrayLiteral("rootwindow"))));
}
/*!