changed replacetag into toggletag 19da197f
Anselm R.Garbe · 2006-08-14 16:59 4 file(s) · +55 −48
config.arg.h +6 −6
33 33
	{ MODKEY|ControlMask,		XK_1,		toggleview,	{ .i = 0 } }, \
34 34
	{ MODKEY|ControlMask,		XK_2,		toggleview,	{ .i = 1 } }, \
35 35
	{ MODKEY|ControlMask,		XK_3,		toggleview,	{ .i = 2 } }, \
36 -
	{ MODKEY|ShiftMask,		XK_1,		replacetag,	{ .i = 0 } }, \
37 -
	{ MODKEY|ShiftMask,		XK_2,		replacetag,	{ .i = 1 } }, \
38 -
	{ MODKEY|ShiftMask,		XK_3,		replacetag,	{ .i = 2 } }, \
36 +
	{ MODKEY|ShiftMask,		XK_1,		tag,		{ .i = 0 } }, \
37 +
	{ MODKEY|ShiftMask,		XK_2,		tag,		{ .i = 1 } }, \
38 +
	{ MODKEY|ShiftMask,		XK_3,		tag,		{ .i = 2 } }, \
39 39
	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
40 40
	{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, \
41 41
	{ MODKEY|ShiftMask,		XK_Return,	spawn, \
42 42
		{ .cmd = "exec urxvt +sb -tr -bg black -fg '#eeeeee' -cr '#eeeeee' +sb " \
43 43
			"-fn '-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*'" } }, \
44 -
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		appendtag,	{ .i = 0 } }, \
45 -
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		appendtag,	{ .i = 1 } }, \
46 -
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		appendtag,	{ .i = 2 } }, \
44 +
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	{ .i = 0 } }, \
45 +
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	{ .i = 1 } }, \
46 +
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	{ .i = 2 } }, \
47 47
};
48 48
49 49
#define RULES \
config.default.h +10 −10
34 34
	{ MODKEY|ControlMask,		XK_2,		toggleview,	{ .i = 2 } }, \
35 35
	{ MODKEY|ControlMask,		XK_3,		toggleview,	{ .i = 3 } }, \
36 36
	{ MODKEY|ControlMask,		XK_4,		toggleview,	{ .i = 4 } }, \
37 -
	{ MODKEY|ShiftMask,		XK_0,		replacetag,	{ .i = 0 } }, \
38 -
	{ MODKEY|ShiftMask,		XK_1,		replacetag,	{ .i = 1 } }, \
39 -
	{ MODKEY|ShiftMask,		XK_2,		replacetag,	{ .i = 2 } }, \
40 -
	{ MODKEY|ShiftMask,		XK_3,		replacetag,	{ .i = 3 } }, \
41 -
	{ MODKEY|ShiftMask,		XK_4,		replacetag,	{ .i = 4 } }, \
37 +
	{ MODKEY|ShiftMask,		XK_0,		tag,		{ .i = 0 } }, \
38 +
	{ MODKEY|ShiftMask,		XK_1,		tag,		{ .i = 1 } }, \
39 +
	{ MODKEY|ShiftMask,		XK_2,		tag,		{ .i = 2 } }, \
40 +
	{ MODKEY|ShiftMask,		XK_3,		tag,		{ .i = 3 } }, \
41 +
	{ MODKEY|ShiftMask,		XK_4,		tag,		{ .i = 4 } }, \
42 42
	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
43 43
	{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, \
44 44
	{ MODKEY|ShiftMask,		XK_Return,	spawn,		{ .cmd = "exec xterm" } }, \
45 -
	{ MODKEY|ControlMask|ShiftMask,	XK_0,		appendtag,	{ .i = 0 } }, \
46 -
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		appendtag,	{ .i = 1 } }, \
47 -
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		appendtag,	{ .i = 2 } }, \
48 -
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		appendtag,	{ .i = 3 } }, \
49 -
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		appendtag,	{ .i = 4 } }, \
45 +
	{ MODKEY|ControlMask|ShiftMask,	XK_0,		toggletag,	{ .i = 0 } }, \
46 +
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	{ .i = 1 } }, \
47 +
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	{ .i = 2 } }, \
48 +
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	{ .i = 3 } }, \
49 +
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	{ .i = 4 } }, \
50 50
};
51 51
52 52
#define RULES \
dwm.h +3 −3
116 116
extern int xerror(Display *dsply, XErrorEvent *ee);
117 117
118 118
/* tag.c */
119 -
extern void appendtag(Arg *arg);
120 119
extern void dofloat(Arg *arg);
121 120
extern void dotile(Arg *arg);
122 121
extern void initrregs();
123 122
extern Bool isvisible(Client *c);
124 123
extern Client *getnext(Client *c);
125 124
extern Client *getprev(Client *c);
126 -
extern void replacetag(Arg *arg);
127 125
extern void restack();
128 126
extern void settags(Client *c);
127 +
extern void tag(Arg *arg);
129 128
extern void togglemode(Arg *arg);
129 +
extern void toggletag(Arg *arg);
130 +
extern void toggleview(Arg *arg);
130 131
extern void view(Arg *arg);
131 -
extern void toggleview(Arg *arg);
132 132
133 133
/* util.c */
134 134
extern void *emallocz(unsigned int size);
tag.c +36 −29
35 35
/* extern */
36 36
37 37
void
38 -
appendtag(Arg *arg)
39 -
{
40 -
	if(!sel)
41 -
		return;
42 -
43 -
	sel->tags[arg->i] = True;
44 -
	settitle(sel);
45 -
}
46 -
47 -
void
48 38
dofloat(Arg *arg)
49 39
{
50 40
	Client *c;
183 173
}
184 174
185 175
void
186 -
replacetag(Arg *arg)
187 -
{
188 -
	int i;
189 -
190 -
	if(!sel)
191 -
		return;
192 -
193 -
	for(i = 0; i < ntags; i++)
194 -
		sel->tags[i] = False;
195 -
	appendtag(arg);
196 -
}
197 -
198 -
void
199 176
restack()
200 177
{
201 178
	static unsigned int nwins = 0;
281 258
}
282 259
283 260
void
261 +
tag(Arg *arg)
262 +
{
263 +
	unsigned int i;
264 +
265 +
	if(!sel)
266 +
		return;
267 +
268 +
	for(i = 0; i < ntags; i++)
269 +
		sel->tags[i] = False;
270 +
	sel->tags[arg->i] = True;
271 +
	settitle(sel);
272 +
}
273 +
274 +
void
284 275
togglemode(Arg *arg)
285 276
{
286 277
	arrange = arrange == dofloat ? dotile : dofloat;
288 279
}
289 280
290 281
void
291 -
view(Arg *arg)
282 +
toggletag(Arg *arg)
292 283
{
293 284
	unsigned int i;
294 285
295 -
	for(i = 0; i < ntags; i++)
296 -
		seltag[i] = False;
297 -
	seltag[arg->i] = True;
298 -
	arrange(NULL);
286 +
	if(!sel)
287 +
		return;
288 +
289 +
	sel->tags[arg->i] = !sel->tags[arg->i];
290 +
	for(i = 0; i < ntags && !sel->tags[i]; i++);
291 +
	if(i == ntags)
292 +
		sel->tags[arg->i] = True;
293 +
	settitle(sel);
299 294
}
295 +
300 296
301 297
void
302 298
toggleview(Arg *arg)
304 300
	unsigned int i;
305 301
306 302
	seltag[arg->i] = !seltag[arg->i];
307 -
	for(i = 0; !seltag[i] && i < ntags; i++);
303 +
	for(i = 0; i < ntags && !seltag[i]; i++);
308 304
	if(i == ntags)
309 305
		seltag[arg->i] = True; /* cannot toggle last view */
310 306
	arrange(NULL);
311 307
}
308 +
309 +
void
310 +
view(Arg *arg)
311 +
{
312 +
	unsigned int i;
313 +
314 +
	for(i = 0; i < ntags; i++)
315 +
		seltag[i] = False;
316 +
	seltag[arg->i] = True;
317 +
	arrange(NULL);
318 +
}