Select correct client window in WM’s using virtual roots
authorKim Woelders <kim@woelders.dk>
Thu, 6 Dec 2007 10:30:43 +0000 (05:30 -0500)
committerJames Cloos <cloos@jhcloos.com>
Thu, 6 Dec 2007 10:30:43 +0000 (05:30 -0500)
commite09956f244099ddd36b1a2cd5d7800d5fc7120c1
treec5480b5f26a7e0bf04ff79db03b400f57bebeb97
parent9ccda86dae06375750685977a81f4fb1cabf3d00
Select correct client window in WM’s using virtual roots
From bug 2185¹

When manually selecting a window, xprop finds the top-level window containing
the pointer and uses XmuClientWindow to attempt to find a client window having
WM_STATE set.

In a WM using virtual roots (e.g. enlightenment, desks other than first) this
fails beacuse the top-level window is a virtual root, and XmuClientWindow seems
to find the first client having WM_STATE set, which only by coincidence will be
the one the user intended to select (i.e. containing the pointer).

The solution is to descend the window hierarchy at the pointer location to find
a window with WM_STATE set.

1] https://bugs.freedesktop.org/show_bug.cgi?id=2185

Signed-off-by: James Cloos <cloos@jhcloos.com>
Makefile.am
clientwin.c [new file with mode: 0644]
clientwin.h [new file with mode: 0644]
configure.ac
dsimple.c
dsimple.h
xprop.c