diff options
| author | Anselm R. Garbe <arg@suckless.org> | 2007-04-19 09:24:25 +0200 | 
|---|---|---|
| committer | Anselm R. Garbe <arg@suckless.org> | 2007-04-19 09:24:25 +0200 | 
| commit | 22399a3bc05406a89f6ad717800b4d9ba41f6e0a (patch) | |
| tree | 78e7c817a7df86050b755b2ea1eb03ff96f136e2 | |
| parent | ad2508f9578195e703033df3cceb441f716261bd (diff) | |
fixed the border issue for mplayer, ff is definately broken when using F11 (fullscreen mode)
| -rw-r--r-- | client.c | 14 | ||||
| -rw-r--r-- | dwm.h | 2 | ||||
| -rw-r--r-- | main.c | 2 | 
3 files changed, 12 insertions, 6 deletions
| @@ -185,9 +185,11 @@ manage(Window w, XWindowAttributes *wa) {  	c->y = wa->y;  	c->w = wa->width;  	c->h = wa->height; +	c->oldborder = wa->border_width;  	if(c->w == sw && c->h == sh) {  		c->x = sx;  		c->y = sy; +		c->border = wa->border_width;  	}  	else {  		if(c->x + c->w + 2 * c->border > wax + waw) @@ -198,15 +200,16 @@ manage(Window w, XWindowAttributes *wa) {  			c->x = wax;  		if(c->y < way)  			c->y = way; +		c->border = BORDERPX;  	} +	wc.border_width = c->border; +	XConfigureWindow(dpy, w, CWBorderWidth, &wc); +	XSetWindowBorder(dpy, w, dc.norm[ColBorder]); +	configure(c); /* propagates border_width, if size doesn't change */  	updatesizehints(c);  	XSelectInput(dpy, w,  		StructureNotifyMask | PropertyChangeMask | EnterWindowMask);  	grabbuttons(c, False); -	c->border = wc.border_width = (c->w == sw && c->h == sh) ? wa->border_width : BORDERPX; -	XConfigureWindow(dpy, w, CWBorderWidth, &wc); -	XSetWindowBorder(dpy, w, dc.norm[ColBorder]); -	configure(c); /* propagates border_width, if size doesn't change */  	updatetitle(c);  	if((rettrans = XGetTransientForHint(dpy, w, &trans) == Success))  		for(t = clients; t && t->win != trans; t = t->next); @@ -378,10 +381,13 @@ updatetitle(Client *c) {  void  unmanage(Client *c) {  	Client *nc; +	XWindowChanges wc; +	wc.border_width = c->oldborder;  	/* The server grab construct avoids race conditions. */  	XGrabServer(dpy);  	XSetErrorHandler(xerrordummy); +	XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */  	detach(c);  	detachstack(c);  	if(sel == c) { @@ -50,7 +50,7 @@ struct Client {  	int basew, baseh, incw, inch, maxw, maxh, minw, minh;  	int minax, maxax, minay, maxay;  	long flags;  -	unsigned int border; +	unsigned int border, oldborder;  	Bool isbanned, isfixed, ismax, isfloating;  	Bool *tags;  	Client *next; @@ -81,7 +81,7 @@ initfont(const char *fontstr) {  	dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);  	if(missing) {  		while(n--) -			fprintf(stderr, "missing fontset: %s\n", missing[n]); +			fprintf(stderr, "dwm: missing fontset: %s\n", missing[n]);  		XFreeStringList(missing);  	}  	if(dc.font.set) { | 
