focus(): clear XUrgencyHint from the container window - tabbed - tab interface for application supporting Xembed
  HTML git clone git://git.suckless.org/tabbed
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 82374bcf6d35f6b05412382b8e51e1202ce4379b
   DIR parent 405d9cdf3aa998b48c87fe995125877673712a74
  HTML Author: Mikhail Pchelin <misha@freebsd.org>
       Date:   Tue, 21 Jan 2025 20:28:42 +0300
       
       focus(): clear XUrgencyHint from the container window
       
       Diffstat:
         M tabbed.c                            |      12 ++++++++++++
       
       1 file changed, 12 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/tabbed.c b/tabbed.c
       @@ -447,6 +447,7 @@ focus(int c)
                char buf[BUFSIZ] = "tabbed-"VERSION" ::";
                size_t i, n;
                XWMHints* wmh;
       +        XWMHints* win_wmh;
        
                /* If c, sel and clients are -1, raise tabbed-win itself */
                if (nclients == 0) {
       @@ -480,6 +481,17 @@ focus(int c)
                        XSetWMHints(dpy, clients[c]->win, wmh);
                        clients[c]->urgent = False;
                        XFree(wmh);
       +
       +                /*
       +                 * gnome-shell will not stop notifying us about urgency,
       +                 * if we clear only the client hint and don't clear the
       +                 * hint from the main container window
       +                 */
       +                if ((win_wmh = XGetWMHints(dpy, win))) {
       +                        win_wmh->flags &= ~XUrgencyHint;
       +                        XSetWMHints(dpy, win, win_wmh);
       +                        XFree(win_wmh);
       +                }
                }
        
                drawbar();