several bugfixes
This commit is contained in:
		
							parent
							
								
									25c1eb28f9
								
							
						
					
					
						commit
						1d729384d1
					
				
					 3 changed files with 10 additions and 21 deletions
				
			
		|  | @ -68,12 +68,10 @@ static Key keys[] = { | ||||||
| 	{ MODKEY|ShiftMask,             XK_space,  togglefloating, {0} }, | 	{ MODKEY|ShiftMask,             XK_space,  togglefloating, {0} }, | ||||||
| 	{ MODKEY,                       XK_0,      view,           {.ui = ~0 } }, | 	{ MODKEY,                       XK_0,      view,           {.ui = ~0 } }, | ||||||
| 	{ MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } }, | 	{ MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } }, | ||||||
| #ifdef XINERAMA |  | ||||||
| 	{ MODKEY,                       XK_w,      focusmon,       {.ui = 0 } }, | 	{ MODKEY,                       XK_w,      focusmon,       {.ui = 0 } }, | ||||||
| 	{ MODKEY,                       XK_e,      focusmon,       {.ui = 1 } }, | 	{ MODKEY,                       XK_e,      focusmon,       {.ui = 1 } }, | ||||||
| 	{ MODKEY|ShiftMask,             XK_w,      tagmon,         {.ui = 0 } }, | 	{ MODKEY|ShiftMask,             XK_w,      tagmon,         {.ui = 0 } }, | ||||||
| 	{ MODKEY|ShiftMask,             XK_e,      tagmon,         {.ui = 1 } }, | 	{ MODKEY|ShiftMask,             XK_e,      tagmon,         {.ui = 1 } }, | ||||||
| #endif /* XINERAMA */ |  | ||||||
| 	TAGKEYS(                        XK_1,                      0) | 	TAGKEYS(                        XK_1,                      0) | ||||||
| 	TAGKEYS(                        XK_2,                      1) | 	TAGKEYS(                        XK_2,                      1) | ||||||
| 	TAGKEYS(                        XK_3,                      2) | 	TAGKEYS(                        XK_3,                      2) | ||||||
|  |  | ||||||
|  | @ -11,8 +11,8 @@ X11INC = /usr/X11R6/include | ||||||
| X11LIB = /usr/X11R6/lib | X11LIB = /usr/X11R6/lib | ||||||
| 
 | 
 | ||||||
| # Xinerama, un-comment if you want it
 | # Xinerama, un-comment if you want it
 | ||||||
| #XINERAMALIBS = -L${X11LIB} -lXinerama
 | XINERAMALIBS = -L${X11LIB} -lXinerama | ||||||
| #XINERAMAFLAGS = -DXINERAMA
 | XINERAMAFLAGS = -DXINERAMA | ||||||
| 
 | 
 | ||||||
| # includes and libs
 | # includes and libs
 | ||||||
| INCS = -I. -I/usr/include -I${X11INC} | INCS = -I. -I/usr/include -I${X11INC} | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								dwm.c
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								dwm.c
									
										
									
									
									
								
							|  | @ -172,6 +172,7 @@ static void enternotify(XEvent *e); | ||||||
| static void expose(XEvent *e); | static void expose(XEvent *e); | ||||||
| static void focus(Client *c); | static void focus(Client *c); | ||||||
| static void focusin(XEvent *e); | static void focusin(XEvent *e); | ||||||
|  | static void focusmon(const Arg *arg); | ||||||
| static void focusstack(const Arg *arg); | static void focusstack(const Arg *arg); | ||||||
| static unsigned long getcolor(const char *colstr); | static unsigned long getcolor(const char *colstr); | ||||||
| static Bool getrootpointer(int *x, int *y); | static Bool getrootpointer(int *x, int *y); | ||||||
|  | @ -179,6 +180,7 @@ static long getstate(Window w); | ||||||
| static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); | static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); | ||||||
| static void grabbuttons(Client *c, Bool focused); | static void grabbuttons(Client *c, Bool focused); | ||||||
| static void grabkeys(void); | static void grabkeys(void); | ||||||
|  | static Monitor *idxtomon(unsigned int n); | ||||||
| static void initfont(const char *fontstr); | static void initfont(const char *fontstr); | ||||||
| static Bool isprotodel(Client *c); | static Bool isprotodel(Client *c); | ||||||
| static void keypress(XEvent *e); | static void keypress(XEvent *e); | ||||||
|  | @ -206,6 +208,7 @@ static void showhide(Client *c); | ||||||
| static void sigchld(int signal); | static void sigchld(int signal); | ||||||
| static void spawn(const Arg *arg); | static void spawn(const Arg *arg); | ||||||
| static void tag(const Arg *arg); | static void tag(const Arg *arg); | ||||||
|  | static void tagmon(const Arg *arg); | ||||||
| static int textnw(const char *text, unsigned int len); | static int textnw(const char *text, unsigned int len); | ||||||
| static void tile(Monitor *); | static void tile(Monitor *); | ||||||
| static void togglebar(const Arg *arg); | static void togglebar(const Arg *arg); | ||||||
|  | @ -230,11 +233,6 @@ static int xerror(Display *dpy, XErrorEvent *ee); | ||||||
| static int xerrordummy(Display *dpy, XErrorEvent *ee); | static int xerrordummy(Display *dpy, XErrorEvent *ee); | ||||||
| static int xerrorstart(Display *dpy, XErrorEvent *ee); | static int xerrorstart(Display *dpy, XErrorEvent *ee); | ||||||
| static void zoom(const Arg *arg); | static void zoom(const Arg *arg); | ||||||
| #ifdef XINERAMA |  | ||||||
| static void focusmon(const Arg *arg); |  | ||||||
| static Monitor *idxtomon(unsigned int n); |  | ||||||
| static void tagmon(const Arg *arg); |  | ||||||
| #endif /* XINERAMA */ |  | ||||||
| 
 | 
 | ||||||
| /* variables */ | /* variables */ | ||||||
| static char stext[256]; | static char stext[256]; | ||||||
|  | @ -309,9 +307,9 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h) { | ||||||
| 	*h = MAX(1, *h); | 	*h = MAX(1, *h); | ||||||
| 
 | 
 | ||||||
| 	if(*x > m->mx + m->mw) | 	if(*x > m->mx + m->mw) | ||||||
| 		*x = m->mw - WIDTH(c); | 		*x = m->mx + m->mw - WIDTH(c); | ||||||
| 	if(*y > m->my + m->mh) | 	if(*y > m->my + m->mh) | ||||||
| 		*y = m->mh - HEIGHT(c); | 		*y = m->my + m->mh - HEIGHT(c); | ||||||
| 	if(*x + *w + 2 * c->bw < m->mx) | 	if(*x + *w + 2 * c->bw < m->mx) | ||||||
| 		*x = m->mx; | 		*x = m->mx; | ||||||
| 	if(*y + *h + 2 * c->bw < m->my) | 	if(*y + *h + 2 * c->bw < m->my) | ||||||
|  | @ -636,7 +634,6 @@ drawbar(Monitor *m) { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	dc.x = 0; | 	dc.x = 0; | ||||||
| #ifdef XINERAMA |  | ||||||
| 	if(mons->next) { /* more than a single monitor */ | 	if(mons->next) { /* more than a single monitor */ | ||||||
| 		char buf[2]; | 		char buf[2]; | ||||||
| 		buf[0] = m->screen_number + '0'; | 		buf[0] = m->screen_number + '0'; | ||||||
|  | @ -645,7 +642,6 @@ drawbar(Monitor *m) { | ||||||
| 		drawtext(buf, selmon == m ? dc.sel : dc.norm, True); | 		drawtext(buf, selmon == m ? dc.sel : dc.norm, True); | ||||||
| 		dc.x += dc.w; | 		dc.x += dc.w; | ||||||
| 	} | 	} | ||||||
| #endif /* XINERAMA */ |  | ||||||
| 	m->btx = dc.x; | 	m->btx = dc.x; | ||||||
| 	for(i = 0; i < LENGTH(tags); i++) { | 	for(i = 0; i < LENGTH(tags); i++) { | ||||||
| 		dc.w = TEXTW(tags[i]); | 		dc.w = TEXTW(tags[i]); | ||||||
|  | @ -803,7 +799,6 @@ focusin(XEvent *e) { /* there are some broken focus acquiring clients */ | ||||||
| 		XSetInputFocus(dpy, selmon->sel->win, RevertToPointerRoot, CurrentTime); | 		XSetInputFocus(dpy, selmon->sel->win, RevertToPointerRoot, CurrentTime); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef XINERAMA |  | ||||||
| void | void | ||||||
| focusmon(const Arg *arg) { | focusmon(const Arg *arg) { | ||||||
| 	Monitor *m; | 	Monitor *m; | ||||||
|  | @ -814,7 +809,6 @@ focusmon(const Arg *arg) { | ||||||
| 	selmon = m; | 	selmon = m; | ||||||
| 	focus(NULL); | 	focus(NULL); | ||||||
| } | } | ||||||
| #endif /* XINERAMA */ |  | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| focusstack(const Arg *arg) { | focusstack(const Arg *arg) { | ||||||
|  | @ -943,7 +937,6 @@ grabkeys(void) { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef XINERAMA |  | ||||||
| Monitor * | Monitor * | ||||||
| idxtomon(unsigned int n) { | idxtomon(unsigned int n) { | ||||||
| 	unsigned int i; | 	unsigned int i; | ||||||
|  | @ -952,7 +945,6 @@ idxtomon(unsigned int n) { | ||||||
| 	for(m = mons, i = 0; m && i != n; m = m->next, i++); | 	for(m = mons, i = 0; m && i != n; m = m->next, i++); | ||||||
| 	return m; | 	return m; | ||||||
| } | } | ||||||
| #endif /* XINERAMA */ |  | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| initfont(const char *fontstr) { | initfont(const char *fontstr) { | ||||||
|  | @ -1378,6 +1370,7 @@ void | ||||||
| sendmon(Client *c, Monitor *m) { | sendmon(Client *c, Monitor *m) { | ||||||
| 	if(c->mon == m) | 	if(c->mon == m) | ||||||
| 		return; | 		return; | ||||||
|  | 	unfocus(c); | ||||||
| 	detach(c); | 	detach(c); | ||||||
| 	detachstack(c); | 	detachstack(c); | ||||||
| 	c->mon = m; | 	c->mon = m; | ||||||
|  | @ -1531,7 +1524,6 @@ tag(const Arg *arg) { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef XINERAMA |  | ||||||
| void | void | ||||||
| tagmon(const Arg *arg) { | tagmon(const Arg *arg) { | ||||||
| 	Monitor *m; | 	Monitor *m; | ||||||
|  | @ -1540,7 +1532,6 @@ tagmon(const Arg *arg) { | ||||||
| 		return; | 		return; | ||||||
| 	sendmon(selmon->sel, m); | 	sendmon(selmon->sel, m); | ||||||
| } | } | ||||||
| #endif /* XINERAMA */ |  | ||||||
| 
 | 
 | ||||||
| int | int | ||||||
| textnw(const char *text, unsigned int len) { | textnw(const char *text, unsigned int len) { | ||||||
|  | @ -1736,9 +1727,9 @@ updategeom(void) { | ||||||
| 	/* default monitor setup */ | 	/* default monitor setup */ | ||||||
| 	{ | 	{ | ||||||
| 		m->screen_number = 0; | 		m->screen_number = 0; | ||||||
| 		m->wx = 0; | 		m->mx = m->wx = 0; | ||||||
| 		m->my = m->wy = 0; | 		m->my = m->wy = 0; | ||||||
| 		m->ww = sw; | 		m->mw = m->ww = sw; | ||||||
| 		m->mh = m->wh = sh; | 		m->mh = m->wh = sh; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue