[xmonad] darcs patch: Correctly implement section 4.1.7 of ICCCM

Spencer Janssen spencerjanssen at gmail.com
Tue Nov 25 05:57:47 EST 2008


On Tue, Nov 25, 2008 at 10:54:31AM +0200, Roman Cheplyaka wrote:
> * Roman Cheplyaka <roma at ro-che.info> [2008-11-24 21:02:01+0200]
> > Mon Nov 24 20:46:32 EET 2008  Roman Cheplyaka <roma at ro-che.info>
> >   * 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


More information about the xmonad mailing list