replaced togglelayout with setlayout 879241c0
Anselm R. Garbe · 2007-02-19 18:33 5 file(s) · +29 −21
config.arg.h +1 −1
63 63
	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	{ .i = 7 } }, \
64 64
	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	{ .i = 8 } }, \
65 65
	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
66 -
	{ MODKEY,			XK_space,	togglelayout,	{ 0 } }, \
66 +
	{ MODKEY,			XK_space,	setlayout,	{ .i = -1 } }, \
67 67
	{ MODKEY|ShiftMask,		XK_space,	toggleversatile,{ 0 } }, \
68 68
	{ MODKEY,			XK_0,		view,		{ .i = -1 } }, \
69 69
	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \
config.default.h +3 −3
58 58
	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	{ .i = 7 } }, \
59 59
	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	{ .i = 8 } }, \
60 60
	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
61 -
	{ MODKEY,			XK_space,	togglelayout,	{ 0 } }, \
62 -
	{ MODKEY|ShiftMask,		XK_space,	toggleversatile	{ 0 } }, \
61 +
	{ MODKEY,			XK_space,	setlayout,	{ .i = -1 } }, \
62 +
	{ MODKEY|ShiftMask,		XK_space,	toggleversatile,{ 0 } }, \
63 63
	{ MODKEY,			XK_0,		view,		{ .i = -1 } }, \
64 64
	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \
65 65
	{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \
86 86
 * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/ { printf("%s\n",$2) }' */
87 87
#define RULES \
88 88
static Rule rule[] = { \
89 -
	/* class:instance:title regex	tags regex	versatile */ \
89 +
	/* class:instance:title regex	tags regex	isversatile */ \
90 90
	{ "Gimp",			NULL,		True }, \
91 91
	{ "MPlayer",			NULL,		True }, \
92 92
	{ "Acroread",			NULL,		True }, \
dwm.h +1 −1
134 134
extern Bool isvisible(Client *c);		/* returns True if client is visible */
135 135
extern void resizemaster(Arg *arg);		/* resizes the master percent with arg's index value */
136 136
extern void restack(void);			/* restores z layers of all clients */
137 +
extern void setlayout(Arg *arg);		/* sets layout, -1 toggles */
137 138
extern void settags(Client *c, Client *trans);	/* sets tags of c */
138 139
extern void tag(Arg *arg);			/* tags c with arg's index */
139 140
extern void toggleversatile(Arg *arg);		/* toggles focusesd client between versatile/and non-versatile state */
140 -
extern void togglelayout(Arg *arg);		/* toggles layout */
141 141
extern void toggletag(Arg *arg);		/* toggles c tags with arg's index */
142 142
extern void toggleview(Arg *arg);		/* toggles the tag with arg's index (in)visible */
143 143
extern void versatile(void);			/* arranges all windows versatile */
event.c +2 −1
140 140
		if(ev->x < x + blw)
141 141
			switch(ev->button) {
142 142
			case Button1:
143 -
				togglelayout(NULL);
143 +
				a.i = -1;
144 +
				setlayout(&a);
144 145
				break;
145 146
			case Button4:
146 147
				a.i = 1;
screen.c +22 −15
191 191
}
192 192
193 193
void
194 +
setlayout(Arg *arg) {
195 +
	unsigned int i;
196 +
197 +
	if(arg->i == -1) {
198 +
		for(i = 0; i < nlayouts && lt != &layout[i]; i++);
199 +
		if(i == nlayouts - 1)
200 +
			lt = &layout[0];
201 +
		else
202 +
			lt = &layout[++i];
203 +
	}
204 +
	else {
205 +
		if(arg->i < 0 || arg->i >= nlayouts)
206 +
			return;
207 +
		lt = &layout[arg->i];
208 +
	}
209 +
	if(sel)
210 +
		lt->arrange();
211 +
	else
212 +
		drawstatus();
213 +
}
214 +
215 +
void
194 216
settags(Client *c, Client *trans) {
195 217
	char prop[512];
196 218
	unsigned int i, j;
250 272
	if(i == ntags)
251 273
		sel->tags[arg->i] = True;
252 274
	lt->arrange();
253 -
}
254 -
255 -
void
256 -
togglelayout(Arg *arg) {
257 -
	unsigned int i;
258 -
259 -
	for(i = 0; i < nlayouts && lt != &layout[i]; i++);
260 -
	if(i == nlayouts - 1)
261 -
		lt = &layout[0];
262 -
	else
263 -
		lt = &layout[++i];
264 -
	if(sel)
265 -
		lt->arrange();
266 -
	else
267 -
		drawstatus();
268 275
}
269 276
270 277
void