URI:
       fix not updating _NET_ACTIVE_WINDOW - dwm - my customized version of dwm (hiltjo branch)
  HTML git clone git://git.codemadness.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 397d618f1cfbed398ef05d0c9d1e5dbcdb8144e7
   DIR parent f63cde9354504ee9cfecc07517c03736d0f90c26
  HTML Author: NRK <nrk@disroot.org>
       Date:   Thu, 12 Feb 2026 22:28:02 +0000
       
       fix not updating _NET_ACTIVE_WINDOW
       
       currently clients that set the input field of WM_HINTS to true
       (c->neverfocus) will never be updated as _NET_ACTIVE_WINDOW even
       when they are focused. according to the ICCCM [0] the input
       field of WM_HINTS tells the WM to either use or not use
       XSetInputFocus(), it shouldn't have any relation to
       _NET_ACTIVE_WINDOW. EWMH spec [1] also does not mention any
       relationship between the two.
       
       this issue was noticed when launching games via steam/proton and
       noticing that _NET_ACTIVE_WINDOW was always wrong/stale (i.e not
       updated to the game window).
       
       for reference I've looked at bspwm [2] and it also seems to set
       _NET_ACTIVE_WINDOW regardless of whether the client has WM_HINTS
       input true or not.
       
       [0]: https://x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html#input_focus
       [1]: https://specifications.freedesktop.org/wm/1.5/ar01s03.html#id-1.4.10
       [2]: https://github.com/baskerville/bspwm/blob/c5cf7d3943f9a34a5cb2bab36bf473fd77e7d4f6/src/tree.c#L659-L662
       
       Diffstat:
         M dwm.c                               |       8 +++-----
       
       1 file changed, 3 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       @@ -1470,12 +1470,10 @@ sendevent(Client *c, Atom proto)
        void
        setfocus(Client *c)
        {
       -        if (!c->neverfocus) {
       +        if (!c->neverfocus)
                        XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
       -                XChangeProperty(dpy, root, netatom[NetActiveWindow],
       -                        XA_WINDOW, 32, PropModeReplace,
       -                        (unsigned char *) &(c->win), 1);
       -        }
       +        XChangeProperty(dpy, root, netatom[NetActiveWindow], XA_WINDOW, 32,
       +                PropModeReplace, (unsigned char *)&c->win, 1);
                sendevent(c, wmatom[WMTakeFocus]);
        }