
On Tue, Nov 25, 2008 at 10:54:31AM +0200, Roman Cheplyaka wrote:
* Roman Cheplyaka
[2008-11-24 21:02:01+0200] Mon Nov 24 20:46:32 EET 2008 Roman Cheplyaka
* Correctly implement section 4.1.7 of ICCCM Based on patch and investigation by Ivan Tarasov. Fixes #177. - do setInputFocus iff 'input' field of WM_HINTS is True - send WM_TAKE_FOCUS if needed I need help with this patch. As I wrote, according to section 4.1.7 of ICCCM window manager should only setInputFocus on window in the case when input field of WM_HINTS is True. However, some applications do not set WM_HINTS at all. Famous 'xev' is among them. In this case getWMHints returns False for input field. But in practice xev really wants WM to give it focus. So, I see two ways to proceed: - either we ignore that part of ICCCM and setInputFocus on every window, as we did earlier (it doesn't seem to cause any problems) - or we follow the standard with this workaround: make minimal change to X11 to set input field to True by default. The second choice will bring some inconvenience to our users until the next X11 is released. OTOH I don't know any useful apps except xev which doesn't set WM_HINTS. What do you suggest?
-- Roman I. Cheplyaka (aka Feuerbach @ IRC)
WMHints has a bitmask that indicates which WM_HINTS are actually present. I believe the correct solution is to simply check whether inputHintBit is set on wmh_flags. Cheers, Spencer Janssen