forked from mirror/dwm
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.
This commit is contained in:
parent
18248ebf4b
commit
3d1090ba89
2 changed files with 12 additions and 2 deletions
1
LICENSE
1
LICENSE
|
@ -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
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…
Reference in a new issue