diff options
author | Abdiel Janulgue <abdiel.janulgue@nokia.com> | 2010-03-16 17:38:12 +0200 |
---|---|---|
committer | Abdiel Janulgue <abdiel.janulgue@nokia.com> | 2010-03-16 17:38:12 +0200 |
commit | 8faab3fc714dedf866539ce2ffdba264ab9a1a72 (patch) | |
tree | 37ee4a7f3a69a44cabba9dba063d7996da4af1ea | |
parent | 543666894aaa754950cb8644c0802871116c4bb3 (diff) |
Changes: Support _NET_WM_NAME and _NET_SUPPORTING_WM_CHECK
RevBy: TrustMe
-rw-r--r-- | EWMH_COMPLIANCE | 4 | ||||
-rw-r--r-- | src/duicompositemanager.cpp | 19 |
2 files changed, 19 insertions, 4 deletions
diff --git a/EWMH_COMPLIANCE b/EWMH_COMPLIANCE index f499ae2..29d6eb1 100644 --- a/EWMH_COMPLIANCE +++ b/EWMH_COMPLIANCE @@ -46,12 +46,12 @@ compliance : - _NET_CURRENT_DESKTOP - _NET_DESKTOP_NAMES - _NET_WORKAREA -- _NET_SUPPORTING_WM_CHECK ++ _NET_SUPPORTING_WM_CHECK - _NET_VIRTUAL_ROOTS - _NET_DESKTOP_LAYOUT - _NET_SHOWING_DESKTOP -- _NET_WM_NAME ++ _NET_WM_NAME - _NET_WM_VISIBLE_NAME - _NET_WM_ICON_NAME - _NET_WM_VISIBLE_ICON_NAME diff --git a/src/duicompositemanager.cpp b/src/duicompositemanager.cpp index ecfd067..f1d3977 100644 --- a/src/duicompositemanager.cpp +++ b/src/duicompositemanager.cpp @@ -81,6 +81,8 @@ public: // window types _NET_SUPPORTED, + _NET_SUPPORTING_WM_CHECK, + _NET_WM_NAME, _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_NORMAL, @@ -176,6 +178,8 @@ DuiCompAtoms::DuiCompAtoms() // fetch all the atoms atoms[_NET_SUPPORTED] = XInternAtom(dpy, "_NET_SUPPORTED", False); + atoms[_NET_SUPPORTING_WM_CHECK] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False); + atoms[_NET_WM_NAME] = XInternAtom(dpy, "_NET_WM_NAME", False); atoms[_NET_WM_PID] = XInternAtom(dpy, "_NET_WM_PID", False); atoms[_NET_WM_PING] = XInternAtom(dpy, "_NET_WM_PING", False); atoms[_NET_WM_WINDOW_TYPE] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); @@ -568,16 +572,27 @@ void DuiCompositeManagerPrivate::prepare() { watch->prepareRoot(); Window w; - Atom a; + QString wm_name = "DuiCompositor"; w = XCreateSimpleWindow(QX11Info::display(), RootWindow(QX11Info::display(), 0), 0, 0, 1, 1, 0, None, None); + XChangeProperty(QX11Info::display(), RootWindow(QX11Info::display(), 0), + ATOM(_NET_SUPPORTING_WM_CHECK), XA_WINDOW, 32, + PropModeReplace, (unsigned char *)&w, 1); + XChangeProperty(QX11Info::display(), w, ATOM(_NET_SUPPORTING_WM_CHECK), + XA_WINDOW, 32, PropModeReplace, (unsigned char *)&w, 1); + XChangeProperty(QX11Info::display(), w, ATOM(_NET_WM_NAME), + XInternAtom(QX11Info::display(), "UTF8_STRING", 0), 8, + PropModeReplace, (unsigned char*) wm_name.toUtf8().data(), + wm_name.size()); + + Xutf8SetWMProperties(QX11Info::display(), w, "DuiCompositor", "DuiCompositor", NULL, 0, NULL, NULL, NULL); - a = XInternAtom(QX11Info::display(), "_NET_WM_CM_S0", False); + Atom a = XInternAtom(QX11Info::display(), "_NET_WM_CM_S0", False); XSetSelectionOwner(QX11Info::display(), a, w, 0); xoverlay = XCompositeGetOverlayWindow(QX11Info::display(), |