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.
new_dwm
Anselm R Garbe 10 years ago
parent 18248ebf4b
commit 3d1090ba89

@ -1,6 +1,7 @@
MIT/X Consortium License MIT/X Consortium License
© 2006-2014 Anselm R Garbe <anselm@garbe.us> © 2006-2014 Anselm R Garbe <anselm@garbe.us>
© 2010-2014 Hiltjo Posthuma <hiltjo@codemadness.org>
© 2007-2011 Peter Hartlich <sgkkr at hartlich dot com> © 2007-2011 Peter Hartlich <sgkkr at hartlich dot com>
© 2010-2011 Connor Lane Smith <cls@lubutu.com> © 2010-2011 Connor Lane Smith <cls@lubutu.com>
© 2006-2009 Jukka Salmi <jukka at salmi dot ch> © 2006-2009 Jukka Salmi <jukka at salmi dot ch>

13
dwm.c

@ -1123,6 +1123,7 @@ movemouse(const Arg *arg) {
Client *c; Client *c;
Monitor *m; Monitor *m;
XEvent ev; XEvent ev;
Time lasttime = 0;
if(!(c = selmon->sel)) if(!(c = selmon->sel))
return; return;
@ -1145,6 +1146,10 @@ movemouse(const Arg *arg) {
handler[ev.type](&ev); handler[ev.type](&ev);
break; break;
case MotionNotify: case MotionNotify:
if ((ev.xmotion.time - lasttime) <= (1000 / 60))
continue;
lasttime = ev.xmotion.time;
nx = ocx + (ev.xmotion.x - x); nx = ocx + (ev.xmotion.x - x);
ny = ocy + (ev.xmotion.y - y); ny = ocy + (ev.xmotion.y - y);
if(nx >= selmon->wx && nx <= selmon->wx + selmon->ww 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 void
resizemouse(const Arg *arg) { resizemouse(const Arg *arg) {
int ocx, ocy; int ocx, ocy, nw, nh;
int nw, nh;
Client *c; Client *c;
Monitor *m; Monitor *m;
XEvent ev; XEvent ev;
Time lasttime = 0;
if(!(c = selmon->sel)) if(!(c = selmon->sel))
return; return;
@ -1290,6 +1295,10 @@ resizemouse(const Arg *arg) {
handler[ev.type](&ev); handler[ev.type](&ev);
break; break;
case MotionNotify: 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); nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);
nh = MAX(ev.xmotion.y - ocy - 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 if(c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww

Loading…
Cancel
Save