diff options
author | Jens Bache-Wiig <jbache@trolltech.com> | 2009-10-06 10:31:12 (GMT) |
---|---|---|
committer | Jens Bache-Wiig <jbache@trolltech.com> | 2009-10-06 10:33:26 (GMT) |
commit | 9956ef7fd66f5a0a2ebf9b810e5f6ffe3649cf20 (patch) | |
tree | fdb18403bea05339edd2c34a49a5f320ecadb2aa /src | |
parent | 3d2ef8ab18dcf0b772d2f6ddeb5cf5295ca09db6 (diff) | |
download | Qt-9956ef7fd66f5a0a2ebf9b810e5f6ffe3649cf20.zip Qt-9956ef7fd66f5a0a2ebf9b810e5f6ffe3649cf20.tar.gz Qt-9956ef7fd66f5a0a2ebf9b810e5f6ffe3649cf20.tar.bz2 |
Add support for XFCE desktop integration
XFCE essentially depends on gnome libraries and can use the
same integration features we provide for GNOME. Hence we
simply treat it as the GNOME desktop environment internally.
We can now also use the DESKTOP_SESSION to reliably detect
desktop environments since it has been properly standardized,
instead of relying on window manager hacks for anything but
a fallback.
Task-number: QTBUG-4737
Reviewed-by: bhughes
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qapplication_x11.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp index bbce438..e46a370 100644 --- a/src/gui/kernel/qapplication_x11.cpp +++ b/src/gui/kernel/qapplication_x11.cpp @@ -2256,8 +2256,13 @@ void qt_init(QApplicationPrivate *priv, int, unsigned long length, after; uchar *data = 0; - if (XGetWindowProperty(X11->display, QX11Info::appRootWindow(), ATOM(DTWM_IS_RUNNING), - 0, 1, False, AnyPropertyType, &type, &format, &length, + QString session = QString::fromLocal8Bit(qgetenv("DESKTOP_SESSION")); + if (session == QLatin1String("kde")) { + X11->desktopEnvironment = DE_KDE; + } else if (session == QLatin1String("gnome") || session == QLatin1String("xfce")) { + X11->desktopEnvironment = DE_GNOME; + } else if (XGetWindowProperty(X11->display, QX11Info::appRootWindow(), ATOM(DTWM_IS_RUNNING), + 0, 1, False, AnyPropertyType, &type, &format, &length, &after, &data) == Success && length) { // DTWM is running, meaning most likely CDE is running... X11->desktopEnvironment = DE_CDE; |