summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdiel Janulgue <abdiel.janulgue@nokia.com>2010-03-16 17:38:12 +0200
committerAbdiel Janulgue <abdiel.janulgue@nokia.com>2010-03-16 17:38:12 +0200
commit8faab3fc714dedf866539ce2ffdba264ab9a1a72 (patch)
tree37ee4a7f3a69a44cabba9dba063d7996da4af1ea
parent543666894aaa754950cb8644c0802871116c4bb3 (diff)
Changes: Support _NET_WM_NAME and _NET_SUPPORTING_WM_CHECK
RevBy: TrustMe
-rw-r--r--EWMH_COMPLIANCE4
-rw-r--r--src/duicompositemanager.cpp19
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(),