tabbed

[fork] xembed tabbing program
Log | Files | Refs | README | LICENSE

commit 0f67f586b1a95c0f006f50738bf8b418968076c8
parent 21ae332817f235ba45e28fe6389abf39308ed93b
Author: Enno Boland (tox) <tox@s01.de>
Date:   Tue,  8 Sep 2009 11:53:32 +0200

added tab selecting with mouse
Diffstat:
Mtabbed.c | 17+++++++++++++++++
1 file changed, 17 insertions(+), 0 deletions(-)

diff --git a/tabbed.c b/tabbed.c @@ -76,12 +76,14 @@ typedef struct Listener { /* function declarations */ static void autostart(void); +static void buttonpress(XEvent *e); static void cleanup(void); static void configurenotify(XEvent *e); static void die(const char *errstr, ...); static void drawbar(); static void drawtext(const char *text, unsigned long col[ColLast]); static void expose(XEvent *e); +static void focus(Client *c); static unsigned long getcolor(const char *colstr); static Client *getclient(Window w); static Client *getfirsttab(); @@ -109,6 +111,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { [ConfigureNotify] = configurenotify, [PropertyNotify] = propertynotify, [UnmapNotify] = unmapnotify, + [ButtonPress] = buttonpress, [KeyPress] = keypress, [Expose] = expose, }; @@ -133,6 +136,20 @@ autostart() { } void +buttonpress(XEvent *e) { + int i; + Client *c; + XButtonPressedEvent *ev = &e->xbutton; + + for(i = 0, c = getfirsttab(); c; c = c->next, i++) { + if(i * tabwidth < ev->x && (i + 1) * tabwidth > ev->x) { + focus(c); + break; + } + } +} + +void cleanup(void) { if(dc.font.set) XFreeFontSet(dpy, dc.font.set);