diff options
Diffstat (limited to 'tabbed/patches/tabbed-hidetabs-20191216-b5f9ec6.diff')
| -rw-r--r-- | tabbed/patches/tabbed-hidetabs-20191216-b5f9ec6.diff | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/tabbed/patches/tabbed-hidetabs-20191216-b5f9ec6.diff b/tabbed/patches/tabbed-hidetabs-20191216-b5f9ec6.diff new file mode 100644 index 0000000..424519d --- /dev/null +++ b/tabbed/patches/tabbed-hidetabs-20191216-b5f9ec6.diff @@ -0,0 +1,105 @@ +From 52708d468acace9543d01e6d8afae799f8d6fccd Mon Sep 17 00:00:00 2001 +From: LeelaPakanati <leela.pakanati@gmail.com> +Date: Mon, 16 Dec 2019 18:57:32 -0500 +Subject: [PATCH] Add hide tabs feature + +--- + config.def.h | 7 +++++-- + tabbed.c | 24 +++++++++++++++++++++--- + 2 files changed, 26 insertions(+), 5 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 7bfda30..bb7ef0e 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -63,10 +63,13 @@ static Key keys[] = { + { MODKEY|ShiftMask, XK_u, toggle, { .v = (void*) &urgentswitch } }, + + { 0, XK_F11, fullscreen, { 0 } }, ++ ++ { MODKEY, XK_Shift_L, showbar, { .i = 1 } }, ++ { ShiftMask, XK_Control_L, showbar, { .i = 1 } }, + }; + + static Key keyreleases[] = { + /* modifier key function argument */ +- { 0, XK_Shift_L, NULL, { 0 } }, +- ++ { MODKEY|ShiftMask, XK_Shift_L, showbar, { .i = 0 } }, ++ { MODKEY|ShiftMask, XK_Control_L, showbar, { .i = 0 } }, + }; +diff --git a/tabbed.c b/tabbed.c +index fe38b9d..352dab2 100644 +--- a/tabbed.c ++++ b/tabbed.c +@@ -127,6 +127,7 @@ static void sendxembed(int c, long msg, long detail, long d1, long d2); + static void setcmd(int argc, char *argv[], int); + static void setup(void); + static void sigchld(int unused); ++static void showbar(const Arg *arg); + static void spawn(const Arg *arg); + static int textnw(const char *text, unsigned int len); + static void toggle(const Arg *arg); +@@ -154,7 +155,7 @@ static void (*handler[LASTEvent]) (const XEvent *) = { + [MapRequest] = maprequest, + [PropertyNotify] = propertynotify, + }; +-static int bh, wx, wy, ww, wh; ++static int bh, wx, wy, ww, wh, vbh; + static unsigned int numlockmask; + static Bool running = True, nextfocus, doinitspawn = True, + fillagain = False, closelastclient = False, +@@ -171,6 +172,7 @@ static char winid[64]; + static char **cmd; + static char *wmname = "tabbed"; + static const char *geometry; ++static Bool barvisibility = False; + + char *argv0; + +@@ -317,9 +319,18 @@ void + drawbar(void) + { + XftColor *col; +- int c, cc, fc, width; ++ int c, cc, fc, width, nbh; + char *name = NULL; + ++ nbh = barvisibility ? vbh : 0; ++ if (nbh != bh) { ++ bh = nbh; ++ for (c = 0; c < nclients; c++) ++ XMoveResizeWindow(dpy, clients[c]->win, 0, bh, ww, wh-bh); ++ } ++ ++ if (bh == 0) return; ++ + if (nclients == 0) { + dc.x = 0; + dc.w = ww; +@@ -1003,7 +1014,7 @@ setup(void) + screen = DefaultScreen(dpy); + root = RootWindow(dpy, screen); + initfont(font); +- bh = dc.h = dc.font.height + 2; ++ vbh = dc.h = dc.font.height + 2; + + /* init atoms */ + wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); +@@ -1096,6 +1107,13 @@ setup(void) + focus(-1); + } + ++void ++showbar(const Arg *arg) ++{ ++ barvisibility = arg->i; ++ drawbar(); ++} ++ + void + sigchld(int unused) + { +-- +2.24.0 + |
