diff options
| author | Anselm R Garbe <garbeam@gmail.com> | 2014-08-11 07:24:29 +0200 | 
|---|---|---|
| committer | Anselm R Garbe <garbeam@gmail.com> | 2014-08-11 07:24:29 +0200 | 
| commit | 3d1090ba896319368c4771b88d325fcee368a608 (patch) | |
| tree | 7fc1223b206fd8b57eac0059425ed35bb69af65b | |
| parent | 18248ebf4b9465b837e717dcd14a5202a98248e0 (diff) | |
| download | dwm-3d1090ba896319368c4771b88d325fcee368a608.tar.gz | |
applied Hiltjo's resize/move limitation
"Limit the amount of updates when resizing or moving a window in floating
mode to 60 times per second. This makes resizing and moving alot smoother
and by limiting it it also uses alot less resources on my machine.
| -rw-r--r-- | LICENSE | 1 | ||||
| -rw-r--r-- | dwm.c | 13 | 
2 files changed, 12 insertions, 2 deletions
@@ -1,6 +1,7 @@  MIT/X Consortium License  © 2006-2014 Anselm R Garbe <anselm@garbe.us> +© 2010-2014 Hiltjo Posthuma <hiltjo@codemadness.org>  © 2007-2011 Peter Hartlich <sgkkr at hartlich dot com>  © 2010-2011 Connor Lane Smith <cls@lubutu.com>  © 2006-2009 Jukka Salmi <jukka at salmi dot ch> @@ -1123,6 +1123,7 @@ movemouse(const Arg *arg) {  	Client *c;  	Monitor *m;  	XEvent ev; +	Time lasttime = 0;  	if(!(c = selmon->sel))  		return; @@ -1145,6 +1146,10 @@ movemouse(const Arg *arg) {  			handler[ev.type](&ev);  			break;  		case MotionNotify: +			if ((ev.xmotion.time - lasttime) <= (1000 / 60)) +				continue; +			lasttime = ev.xmotion.time; +  			nx = ocx + (ev.xmotion.x - x);  			ny = ocy + (ev.xmotion.y - y);  			if(nx >= selmon->wx && nx <= selmon->wx + selmon->ww @@ -1264,11 +1269,11 @@ resizeclient(Client *c, int x, int y, int w, int h) {  void  resizemouse(const Arg *arg) { -	int ocx, ocy; -	int nw, nh; +	int ocx, ocy, nw, nh;  	Client *c;  	Monitor *m;  	XEvent ev; +	Time lasttime = 0;  	if(!(c = selmon->sel))  		return; @@ -1290,6 +1295,10 @@ resizemouse(const Arg *arg) {  			handler[ev.type](&ev);  			break;  		case MotionNotify: +			if ((ev.xmotion.time - lasttime) <= (1000 / 60)) +				continue; +			lasttime = ev.xmotion.time; +  			nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);  			nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1);  			if(c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww  |