Introduction
Introduction Statistics Contact Development Disclaimer Help
tapplied Gottox' ClkTagBar patch - dwm - [fork] customized build of dwm, the dy…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit b86c818599f8fecd42bcde564686b2489196d7ab
parent c2a916bf3021d9e16419eccbd553d967404ad6e4
Author: Anselm R Garbe <[email protected]>
Date: Fri, 20 Jun 2008 16:52:07 +0100
applied Gottox' ClkTagBar patch
Diffstat:
M config.def.h | 19 ++++---------------
M dwm.c | 20 +++++++++++---------
2 files changed, 15 insertions(+), 24 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -84,12 +84,6 @@ static Key keys[] = {
};
/* button definitions */
-#define TAGBUTTONS(TAG) \
- { TAG, 0, Button1, view, …
- { TAG, 0, Button3, toggleview, …
- { TAG, MODKEY, Button1, tag, …
- { TAG, MODKEY, Button3, toggletag, …
-
/* click can be a tag number (starting at 0),
* ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
t@@ -101,14 +95,9 @@ static Button buttons[] = {
{ ClkClientWin, MODKEY, Button1, movemouse, …
{ ClkClientWin, MODKEY, Button2, togglefloating…
{ ClkClientWin, MODKEY, Button3, resizemouse, …
- TAGBUTTONS(0)
- TAGBUTTONS(1)
- TAGBUTTONS(2)
- TAGBUTTONS(3)
- TAGBUTTONS(4)
- TAGBUTTONS(5)
- TAGBUTTONS(6)
- TAGBUTTONS(7)
- TAGBUTTONS(8)
+ { ClkTagBar, 0, Button1, view, …
+ { ClkTagBar, 0, Button3, toggleview, …
+ { ClkTagBar, MODKEY, Button1, tag, …
+ { ClkTagBar, MODKEY, Button3, toggletag, …
};
diff --git a/dwm.c b/dwm.c
t@@ -60,7 +60,7 @@ enum { CurNormal, CurResize, CurMove, CurLast }; /* c…
enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */
enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */
-enum { ClkLtSymbol = 64, ClkStatusText, ClkWinTitle,
+enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
/* typedefs */
t@@ -304,17 +304,18 @@ attachstack(Client *c) {
void
buttonpress(XEvent *e) {
uint i, x, click;
+ Arg arg = {0};
Client *c;
XButtonPressedEvent *ev = &e->xbutton;
click = ClkRootWin;
if(ev->window == barwin) {
- i = x = 0;
- do
+ for(i = x = 0; ev->x >= x && ++i < LENGTH(tags); i++)
x += TEXTW(tags[i]);
- while(ev->x >= x && ++i < LENGTH(tags));
- if(i < LENGTH(tags))
- click = i;
+ if(i < LENGTH(tags)) {
+ click = ClkTagBar;
+ arg.ui = 1 << i;
+ }
else if(ev->x < x + blw)
click = ClkLtSymbol;
else if(ev->x > wx + ww - TEXTW(stext))
t@@ -330,7 +331,7 @@ buttonpress(XEvent *e) {
for(i = 0; i < LENGTH(buttons); i++)
if(click == buttons[i].click && buttons[i].func && buttons[i].…
&& CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
- buttons[i].func(&buttons[i].arg);
+ buttons[i].func(click == ClkTagBar ? &arg : &buttons[i…
}
void
t@@ -1295,8 +1296,9 @@ setclientstate(Client *c, long state) {
void
setlayout(const Arg *arg) {
- sellt ^= 1;
- if(arg && arg->v && arg->v != lt[sellt])
+ if(!arg || !arg->v || arg->v != lt[sellt])
+ sellt ^= 1;
+ if(arg && arg->v)
lt[sellt] = (Layout *)arg->v;
if(sel)
arrange();
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.