diff options
| author | Anselm R. Garbe <arg@suckless.org> | 2007-02-19 18:33:15 +0100 | 
|---|---|---|
| committer | Anselm R. Garbe <arg@suckless.org> | 2007-02-19 18:33:15 +0100 | 
| commit | 879241c05cbf959304a2dc4f2fabcdcecaea5092 (patch) | |
| tree | 824a9185087d91eff6021c646c2372033e4f9f56 | |
| parent | 3794c6294535518fdcdf2ceb434875584189aa1e (diff) | |
| download | dwm-879241c05cbf959304a2dc4f2fabcdcecaea5092.tar.gz | |
replaced togglelayout with setlayout
| -rw-r--r-- | config.arg.h | 2 | ||||
| -rw-r--r-- | config.default.h | 6 | ||||
| -rw-r--r-- | dwm.h | 2 | ||||
| -rw-r--r-- | event.c | 3 | ||||
| -rw-r--r-- | screen.c | 37 | 
5 files changed, 29 insertions, 21 deletions
| diff --git a/config.arg.h b/config.arg.h index 0e044bf..423e935 100644 --- a/config.arg.h +++ b/config.arg.h @@ -63,7 +63,7 @@ static Key key[] = { \  	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	{ .i = 7 } }, \  	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	{ .i = 8 } }, \  	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \ -	{ MODKEY,			XK_space,	togglelayout,	{ 0 } }, \ +	{ MODKEY,			XK_space,	setlayout,	{ .i = -1 } }, \  	{ MODKEY|ShiftMask,		XK_space,	toggleversatile,{ 0 } }, \  	{ MODKEY,			XK_0,		view,		{ .i = -1 } }, \  	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \ diff --git a/config.default.h b/config.default.h index 8bf674f..b29d1a4 100644 --- a/config.default.h +++ b/config.default.h @@ -58,8 +58,8 @@ static Key key[] = { \  	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	{ .i = 7 } }, \  	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	{ .i = 8 } }, \  	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \ -	{ MODKEY,			XK_space,	togglelayout,	{ 0 } }, \ -	{ MODKEY|ShiftMask,		XK_space,	toggleversatile	{ 0 } }, \ +	{ MODKEY,			XK_space,	setlayout,	{ .i = -1 } }, \ +	{ MODKEY|ShiftMask,		XK_space,	toggleversatile,{ 0 } }, \  	{ MODKEY,			XK_0,		view,		{ .i = -1 } }, \  	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \  	{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \ @@ -86,7 +86,7 @@ static Key key[] = { \   * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/ { printf("%s\n",$2) }' */  #define RULES \  static Rule rule[] = { \ -	/* class:instance:title regex	tags regex	versatile */ \ +	/* class:instance:title regex	tags regex	isversatile */ \  	{ "Gimp",			NULL,		True }, \  	{ "MPlayer",			NULL,		True }, \  	{ "Acroread",			NULL,		True }, \ @@ -134,10 +134,10 @@ extern void initlayouts(void);			/* initialize layout array */  extern Bool isvisible(Client *c);		/* returns True if client is visible */  extern void resizemaster(Arg *arg);		/* resizes the master percent with arg's index value */  extern void restack(void);			/* restores z layers of all clients */ +extern void setlayout(Arg *arg);		/* sets layout, -1 toggles */  extern void settags(Client *c, Client *trans);	/* sets tags of c */  extern void tag(Arg *arg);			/* tags c with arg's index */  extern void toggleversatile(Arg *arg);		/* toggles focusesd client between versatile/and non-versatile state */ -extern void togglelayout(Arg *arg);		/* toggles layout */  extern void toggletag(Arg *arg);		/* toggles c tags with arg's index */  extern void toggleview(Arg *arg);		/* toggles the tag with arg's index (in)visible */  extern void versatile(void);			/* arranges all windows versatile */ @@ -140,7 +140,8 @@ buttonpress(XEvent *e) {  		if(ev->x < x + blw)  			switch(ev->button) {  			case Button1: -				togglelayout(NULL); +				a.i = -1; +				setlayout(&a);  				break;  			case Button4:  				a.i = 1; @@ -191,6 +191,28 @@ restack(void) {  }  void +setlayout(Arg *arg) { +	unsigned int i; + +	if(arg->i == -1) { +		for(i = 0; i < nlayouts && lt != &layout[i]; i++); +		if(i == nlayouts - 1) +			lt = &layout[0]; +		else +			lt = &layout[++i]; +	} +	else { +		if(arg->i < 0 || arg->i >= nlayouts) +			return; +		lt = &layout[arg->i]; +	} +	if(sel) +		lt->arrange(); +	else +		drawstatus(); +} + +void  settags(Client *c, Client *trans) {  	char prop[512];  	unsigned int i, j; @@ -253,21 +275,6 @@ toggletag(Arg *arg) {  }  void -togglelayout(Arg *arg) { -	unsigned int i; - -	for(i = 0; i < nlayouts && lt != &layout[i]; i++); -	if(i == nlayouts - 1) -		lt = &layout[0]; -	else -		lt = &layout[++i]; -	if(sel) -		lt->arrange(); -	else -		drawstatus(); -} - -void  toggleversatile(Arg *arg) {  	if(!sel || lt->arrange == versatile)  		return; | 
