implemented viewextend and added M-S-C-n shortcuts for extending the current view... updated man page (works great!) nice feature
This commit is contained in:
		
							parent
							
								
									d7413ffd2d
								
							
						
					
					
						commit
						292ccc4c43
					
				
							
								
								
									
										45
									
								
								config.arg.h
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								config.arg.h
									
									
									
									
									
								
							@ -18,31 +18,34 @@ const char *tags[] = { "work", "net", "fnord", NULL };
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define KEYS \
 | 
					#define KEYS \
 | 
				
			||||||
static Key key[] = { \
 | 
					static Key key[] = { \
 | 
				
			||||||
	/* modifier		key		function	arguments */ \
 | 
						/* modifier			key		function	arguments */ \
 | 
				
			||||||
	{ MODKEY,		XK_1,		view,		{ .i = 0 } }, \
 | 
						{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_2,		view,		{ .i = 1 } }, \
 | 
						{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_3,		view,		{ .i = 2 } }, \
 | 
						{ MODKEY,			XK_3,		view,		{ .i = 2 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_h,		viewprev,	{ 0 } }, \
 | 
						{ MODKEY,			XK_h,		viewprev,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_j,		focusnext,	{ 0 } }, \
 | 
						{ MODKEY,			XK_j,		focusnext,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_k,		focusprev,	{ 0 } }, \
 | 
						{ MODKEY,			XK_k,		focusprev,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_l,		viewnext,	{ 0 } }, \
 | 
						{ MODKEY,			XK_l,		viewnext,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_m,		togglemax,	{ 0 } }, \
 | 
						{ MODKEY,			XK_m,		togglemax,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_p,		spawn, \
 | 
						{ MODKEY,			XK_p,		spawn, \
 | 
				
			||||||
		{ .cmd = "exec `ls -lL /usr/bin /usr/local/bin 2>/dev/null | " \
 | 
							{ .cmd = "exec `ls -lL /usr/bin /usr/local/bin 2>/dev/null | " \
 | 
				
			||||||
			"awk 'NF>2 && $1 ~ /^[^d].*x/ {print $NF}' | sort | uniq | dmenu`" } }, \
 | 
								"awk 'NF>2 && $1 ~ /^[^d].*x/ {print $NF}' | sort | uniq | dmenu`" } }, \
 | 
				
			||||||
	{ MODKEY,		XK_space,	togglemode,	{ 0 } }, \
 | 
						{ MODKEY,			XK_space,	togglemode,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_Return,	zoom,		{ 0 } }, \
 | 
						{ MODKEY,			XK_Return,	zoom,		{ 0 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_1,		appendtag,	{ .i = 0 } }, \
 | 
						{ MODKEY|ControlMask,		XK_1,		appendtag,	{ .i = 0 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_2,		appendtag,	{ .i = 1 } }, \
 | 
						{ MODKEY|ControlMask,		XK_2,		appendtag,	{ .i = 1 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_3,		appendtag,	{ .i = 2 } }, \
 | 
						{ MODKEY|ControlMask,		XK_3,		appendtag,	{ .i = 2 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_1,		replacetag,	{ .i = 0 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_1,		replacetag,	{ .i = 0 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = 1 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_2,		replacetag,	{ .i = 1 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = 2 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_3,		replacetag,	{ .i = 2 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_Return,	spawn, \
 | 
						{ MODKEY|ShiftMask,		XK_Return,	spawn, \
 | 
				
			||||||
		{ .cmd = "exec urxvt +sb -tr -bg black -fg '#eeeeee' -cr '#eeeeee' +sb " \
 | 
							{ .cmd = "exec urxvt +sb -tr -bg black -fg '#eeeeee' -cr '#eeeeee' +sb " \
 | 
				
			||||||
			"-fn '-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*'" } }, \
 | 
								"-fn '-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*'" } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ControlMask|ShiftMask,	XK_1,		viewextend,	{ .i = 0 } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ShiftMask,		XK_2,		viewextend,	{ .i = 1 } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ShiftMask,		XK_3,		viewextend,	{ .i = 2 } }, \
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define RULES \
 | 
					#define RULES \
 | 
				
			||||||
 | 
				
			|||||||
@ -18,32 +18,37 @@ const char *tags[] = { "0", "1", "2", "3", "4", NULL };
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define KEYS \
 | 
					#define KEYS \
 | 
				
			||||||
static Key key[] = { \
 | 
					static Key key[] = { \
 | 
				
			||||||
	/* modifier		key		function	arguments */ \
 | 
						/* modifier			key		function	arguments */ \
 | 
				
			||||||
	{ MODKEY,		XK_0,		view,		{ .i = 0 } }, \
 | 
						{ MODKEY,			XK_0,		view,		{ .i = 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_1,		view,		{ .i = 1 } }, \
 | 
						{ MODKEY,			XK_1,		view,		{ .i = 1 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_2,		view,		{ .i = 2 } }, \
 | 
						{ MODKEY,			XK_2,		view,		{ .i = 2 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_3,		view,		{ .i = 3 } }, \
 | 
						{ MODKEY,			XK_3,		view,		{ .i = 3 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_4,		view,		{ .i = 4 } }, \
 | 
						{ MODKEY,			XK_4,		view,		{ .i = 4 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_h,		viewprev,	{ 0 } }, \
 | 
						{ MODKEY,			XK_h,		viewprev,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_j,		focusnext,	{ 0 } }, \
 | 
						{ MODKEY,			XK_j,		focusnext,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_k,		focusprev,	{ 0 } }, \
 | 
						{ MODKEY,			XK_k,		focusprev,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_l,		viewnext,	{ 0 } }, \
 | 
						{ MODKEY,			XK_l,		viewnext,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_m,		togglemax,	{ 0 } }, \
 | 
						{ MODKEY,			XK_m,		togglemax,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_space,	togglemode,	{ 0 } }, \
 | 
						{ MODKEY,			XK_space,	togglemode,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY,		XK_Return,	zoom,		{ 0 } }, \
 | 
						{ MODKEY,			XK_Return,	zoom,		{ 0 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_0,		appendtag,	{ .i = 0 } }, \
 | 
						{ MODKEY|ControlMask,		XK_0,		appendtag,	{ .i = 0 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_1,		appendtag,	{ .i = 1 } }, \
 | 
						{ MODKEY|ControlMask,		XK_1,		appendtag,	{ .i = 1 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_2,		appendtag,	{ .i = 2 } }, \
 | 
						{ MODKEY|ControlMask,		XK_2,		appendtag,	{ .i = 2 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_3,		appendtag,	{ .i = 3 } }, \
 | 
						{ MODKEY|ControlMask,		XK_3,		appendtag,	{ .i = 3 } }, \
 | 
				
			||||||
	{ MODKEY|ControlMask,	XK_4,		appendtag,	{ .i = 4 } }, \
 | 
						{ MODKEY|ControlMask,		XK_4,		appendtag,	{ .i = 4 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = 0 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_0,		replacetag,	{ .i = 0 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_1,		replacetag,	{ .i = 1 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_1,		replacetag,	{ .i = 1 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = 2 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_2,		replacetag,	{ .i = 2 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = 3 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_3,		replacetag,	{ .i = 3 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_4,		replacetag,	{ .i = 4 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_4,		replacetag,	{ .i = 4 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } }, \
 | 
						{ MODKEY|ShiftMask,		XK_q,		quit,		{ 0 } }, \
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_Return,	spawn,		{ .cmd = "exec xterm" } }, \
 | 
						{ MODKEY|ShiftMask,		XK_Return,	spawn,		{ .cmd = "exec xterm" } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ControlMask|ShiftMask,	XK_0,		viewextend,	{ .i = 0 } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ControlMask|ShiftMask,	XK_1,		viewextend,	{ .i = 1 } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ControlMask|ShiftMask,	XK_2,		viewextend,	{ .i = 2 } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ControlMask|ShiftMask,	XK_3,		viewextend,	{ .i = 3 } }, \
 | 
				
			||||||
 | 
						{ MODKEY|ControlMask|ShiftMask,	XK_4,		viewextend,	{ .i = 4 } }, \
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define RULES \
 | 
					#define RULES \
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								draw.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								draw.c
									
									
									
									
									
								
							@ -109,9 +109,9 @@ drawstatus()
 | 
				
			|||||||
		dc.x += dc.w;
 | 
							dc.x += dc.w;
 | 
				
			||||||
		dc.w = textw(tags[i]);
 | 
							dc.w = textw(tags[i]);
 | 
				
			||||||
		if(istile)
 | 
							if(istile)
 | 
				
			||||||
			drawtext(tags[i], tsel[i]);
 | 
								drawtext(tags[i], seltag[i]);
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			drawtext(tags[i], !tsel[i]);
 | 
								drawtext(tags[i], !seltag[i]);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	x = dc.x + dc.w;
 | 
						x = dc.x + dc.w;
 | 
				
			||||||
	dc.w = textw(stext);
 | 
						dc.w = textw(stext);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										21
									
								
								dwm.1
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								dwm.1
									
									
									
									
									
								
							@ -36,14 +36,21 @@ prints version information to standard output, then exits.
 | 
				
			|||||||
.B Standard input
 | 
					.B Standard input
 | 
				
			||||||
is read and displayed in the status text area.
 | 
					is read and displayed in the status text area.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Button[1-3]
 | 
					.B Button[1,3]
 | 
				
			||||||
click on a tag label focuses that tag.
 | 
					click on a tag label focuses that
 | 
				
			||||||
 | 
					.B tag.
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					.B Button2
 | 
				
			||||||
 | 
					click on a tag label (un)extends the current
 | 
				
			||||||
 | 
					.B tag.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Button[1,4]
 | 
					.B Button[1,4]
 | 
				
			||||||
click on the bar focuses the previous tag.
 | 
					click on the bar focuses the previous
 | 
				
			||||||
 | 
					.B tag.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Button[2,5]
 | 
					.B Button[2,5]
 | 
				
			||||||
click on the bar focuses the next tag.
 | 
					click on the bar focuses the next
 | 
				
			||||||
 | 
					.B tag.
 | 
				
			||||||
.SS Keyboard commands
 | 
					.SS Keyboard commands
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Mod1-Return
 | 
					.B Mod1-Return
 | 
				
			||||||
@ -108,6 +115,12 @@ Append
 | 
				
			|||||||
.B nth tag
 | 
					.B nth tag
 | 
				
			||||||
to current
 | 
					to current
 | 
				
			||||||
.B window.
 | 
					.B window.
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					.B Mod1-Control-Shift-[0..n]
 | 
				
			||||||
 | 
					(Un)extends
 | 
				
			||||||
 | 
					.B nth tag
 | 
				
			||||||
 | 
					with current
 | 
				
			||||||
 | 
					.B tag.
 | 
				
			||||||
.SS Mouse commands
 | 
					.SS Mouse commands
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Mod1-Button1
 | 
					.B Mod1-Button1
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										3
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								dwm.h
									
									
									
									
									
								
							@ -74,7 +74,7 @@ extern unsigned int ntags;
 | 
				
			|||||||
extern void (*handler[LASTEvent])(XEvent *);
 | 
					extern void (*handler[LASTEvent])(XEvent *);
 | 
				
			||||||
extern void (*arrange)(Arg *);
 | 
					extern void (*arrange)(Arg *);
 | 
				
			||||||
extern Atom wmatom[WMLast], netatom[NetLast];
 | 
					extern Atom wmatom[WMLast], netatom[NetLast];
 | 
				
			||||||
extern Bool running, issel, *tsel;
 | 
					extern Bool running, issel, *seltag;
 | 
				
			||||||
extern Client *clients, *sel;
 | 
					extern Client *clients, *sel;
 | 
				
			||||||
extern Cursor cursor[CurLast];
 | 
					extern Cursor cursor[CurLast];
 | 
				
			||||||
extern DC dc;
 | 
					extern DC dc;
 | 
				
			||||||
@ -128,6 +128,7 @@ extern void replacetag(Arg *arg);
 | 
				
			|||||||
extern void settags(Client *c);
 | 
					extern void settags(Client *c);
 | 
				
			||||||
extern void togglemode(Arg *arg);
 | 
					extern void togglemode(Arg *arg);
 | 
				
			||||||
extern void view(Arg *arg);
 | 
					extern void view(Arg *arg);
 | 
				
			||||||
 | 
					extern void viewextend(Arg *arg);
 | 
				
			||||||
extern void viewnext(Arg *arg);
 | 
					extern void viewnext(Arg *arg);
 | 
				
			||||||
extern void viewprev(Arg *arg);
 | 
					extern void viewprev(Arg *arg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										7
									
								
								event.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								event.c
									
									
									
									
									
								
							@ -108,11 +108,8 @@ buttonpress(XEvent *e)
 | 
				
			|||||||
			for(a.i = 0; a.i < ntags; a.i++) {
 | 
								for(a.i = 0; a.i < ntags; a.i++) {
 | 
				
			||||||
				x += textw(tags[a.i]);
 | 
									x += textw(tags[a.i]);
 | 
				
			||||||
				if(ev->x < x) {
 | 
									if(ev->x < x) {
 | 
				
			||||||
					if(ev->button == Button3) {
 | 
										if(ev->button == Button3)
 | 
				
			||||||
						tsel[a.i] = True;
 | 
											viewextend(&a);
 | 
				
			||||||
						arrange(NULL);
 | 
					 | 
				
			||||||
						drawall();
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						view(&a);
 | 
											view(&a);
 | 
				
			||||||
					return;
 | 
										return;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								main.c
									
									
									
									
									
								
							@ -83,7 +83,7 @@ xerrorstart(Display *dsply, XErrorEvent *ee)
 | 
				
			|||||||
/* extern */
 | 
					/* extern */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char stext[1024];
 | 
					char stext[1024];
 | 
				
			||||||
Bool *tsel;
 | 
					Bool *seltag;
 | 
				
			||||||
int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
 | 
					int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
 | 
				
			||||||
unsigned int ntags;
 | 
					unsigned int ntags;
 | 
				
			||||||
Atom wmatom[WMLast], netatom[NetLast];
 | 
					Atom wmatom[WMLast], netatom[NetLast];
 | 
				
			||||||
@ -213,8 +213,8 @@ main(int argc, char *argv[])
 | 
				
			|||||||
	initrregs();
 | 
						initrregs();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(ntags = 0; tags[ntags]; ntags++);
 | 
						for(ntags = 0; tags[ntags]; ntags++);
 | 
				
			||||||
	tsel = emallocz(sizeof(Bool) * ntags);
 | 
						seltag = emallocz(sizeof(Bool) * ntags);
 | 
				
			||||||
	tsel[DEFTAG] = True;
 | 
						seltag[DEFTAG] = True;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* style */
 | 
						/* style */
 | 
				
			||||||
	dc.bg = getcolor(BGCOLOR);
 | 
						dc.bg = getcolor(BGCOLOR);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										25
									
								
								tag.c
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								tag.c
									
									
									
									
									
								
							@ -181,7 +181,7 @@ isvisible(Client *c)
 | 
				
			|||||||
	unsigned int i;
 | 
						unsigned int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(i = 0; i < ntags; i++)
 | 
						for(i = 0; i < ntags; i++)
 | 
				
			||||||
		if(c->tags[i] && tsel[i])
 | 
							if(c->tags[i] && seltag[i])
 | 
				
			||||||
			return True;
 | 
								return True;
 | 
				
			||||||
	return False;
 | 
						return False;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -229,7 +229,7 @@ settags(Client *c)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	if(!matched)
 | 
						if(!matched)
 | 
				
			||||||
		for(i = 0; i < ntags; i++)
 | 
							for(i = 0; i < ntags; i++)
 | 
				
			||||||
			c->tags[i] = tsel[i];
 | 
								c->tags[i] = seltag[i];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
@ -245,8 +245,21 @@ view(Arg *arg)
 | 
				
			|||||||
	unsigned int i;
 | 
						unsigned int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(i = 0; i < ntags; i++)
 | 
						for(i = 0; i < ntags; i++)
 | 
				
			||||||
		tsel[i] = False;
 | 
							seltag[i] = False;
 | 
				
			||||||
	tsel[arg->i] = True;
 | 
						seltag[arg->i] = True;
 | 
				
			||||||
 | 
						arrange(NULL);
 | 
				
			||||||
 | 
						drawall();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					viewextend(Arg *arg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						unsigned int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						seltag[arg->i] = !seltag[arg->i];
 | 
				
			||||||
 | 
						for(i = 0; !seltag[i] && i < ntags; i++);
 | 
				
			||||||
 | 
						if(i == ntags)
 | 
				
			||||||
 | 
							seltag[arg->i] = True; /* cannot toggle last view */
 | 
				
			||||||
	arrange(NULL);
 | 
						arrange(NULL);
 | 
				
			||||||
	drawall();
 | 
						drawall();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -256,7 +269,7 @@ viewnext(Arg *arg)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	unsigned int i;
 | 
						unsigned int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(i = 0; !tsel[i]; i++);
 | 
						for(i = 0; !seltag[i]; i++);
 | 
				
			||||||
	arg->i = (i < ntags-1) ? i+1 : 0;
 | 
						arg->i = (i < ntags-1) ? i+1 : 0;
 | 
				
			||||||
	view(arg);
 | 
						view(arg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -266,7 +279,7 @@ viewprev(Arg *arg)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	unsigned int i;
 | 
						unsigned int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(i = 0; !tsel[i]; i++);
 | 
						for(i = 0; !seltag[i]; i++);
 | 
				
			||||||
	arg->i = (i > 0) ? i-1 : ntags-1;
 | 
						arg->i = (i > 0) ? i-1 : ntags-1;
 | 
				
			||||||
	view(arg);
 | 
						view(arg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user