tabbed

tab interface for application supporting Xembed
git clone git://git.suckless.org/tabbed
Log | Files | Refs | README | LICENSE

commit 13e3aca1cbc322308729d2e6644a420daf811c93
parent c6be3a7d9f36725fa968383e979d1ce00488bd8b
Author: Enno Boland (tox) <tox@s01.de>
Date:   Tue, 16 Feb 2010 19:53:03 +0100

improved focus handling
Diffstat:
Mconfig.def.h | 1+
Mtabbed.c | 11++++++++---
2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/config.def.h b/config.def.h @@ -11,6 +11,7 @@ static const Bool foreground = False; #define MODKEY ControlMask static Key keys[] = { \ /* modifier key function argument */ + { MODKEY|ShiftMask, XK_Return, focusonce, { 0 } }, { MODKEY|ShiftMask, XK_Return, spawn, { .v = (char*[]){ "surf", "-e", winid, NULL} } }, { MODKEY|ShiftMask, XK_l, rotate, { .i = +1 } }, { MODKEY|ShiftMask, XK_h, rotate, { .i = -1 } }, diff --git a/tabbed.c b/tabbed.c @@ -399,7 +399,6 @@ focus(Client *c) { XStoreName(dpy, win, c->name); if(sel != c) { lastsel = sel; - puts("set"); } sel = c; drawbar(); @@ -605,6 +604,8 @@ manage(Window w) { XSync(dpy, False); focus(nextfocus ? c : sel); nextfocus = foreground; + if(!lastsel) + lastsel = c; } } @@ -794,9 +795,13 @@ unmanage(Client *c) { pc->next = c->next; } if(c == lastsel) - lastsel = pc; - focus(lastsel); + lastsel = clients; + if(c == sel) { + sel = pc; + focus(lastsel); + } free(c); + drawbar(); XSync(dpy, False); }