URI: 
       tabbed: UnmapNotify patch - 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 5c560f3784971b1a3bbfc7d18af759778f7779d1
   DIR parent b4fed5a100f2fe50cb7caa33e6d58edebe1e7f80
  HTML Author: Okan Demirmen <okan@demirmen.com>
       Date:   Wed, 10 Sep 2014 13:50:34 -0400
       
       tabbed: UnmapNotify patch
       
       Hi,
       
       Simple patch for tabbed that prevents tabbed from killing a client that it
       should no longer be managing due to an UnmapNotify event.
       
       Add support for UnmapNotify; allows a window to map and unmap without
       needing it to be destroyed.
       
       Thanks,
       Okan
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M tabbed.c                            |      11 +++++++++++
       
       1 file changed, 11 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/tabbed.c b/tabbed.c
       @@ -93,6 +93,7 @@ static void clientmessage(const XEvent *e);
        static void configurenotify(const XEvent *e);
        static void configurerequest(const XEvent *e);
        static void createnotify(const XEvent *e);
       +static void unmapnotify(const XEvent *e);
        static void destroynotify(const XEvent *e);
        static void die(const char *errstr, ...);
        static void drawbar(void);
       @@ -141,6 +142,7 @@ static void (*handler[LASTEvent]) (const XEvent *) = {
                [ConfigureNotify] = configurenotify,
                [ConfigureRequest] = configurerequest,
                [CreateNotify] = createnotify,
       +        [UnmapNotify] = unmapnotify,
                [DestroyNotify] = destroynotify,
                [Expose] = expose,
                [FocusIn] = focusin,
       @@ -286,6 +288,15 @@ createnotify(const XEvent *e) {
        }
        
        void
       +unmapnotify(const XEvent *e) {
       +        const XUnmapEvent *ev = &e->xunmap;
       +        int c;
       +
       +        if((c = getclient(ev->window)) > -1)
       +                unmanage(c);
       +}
       +
       +void
        destroynotify(const XEvent *e) {
                const XDestroyWindowEvent *ev = &e->xdestroywindow;
                int c;