diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-03 16:05:06 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-03 16:05:06 +0100 |
commit | 7d8664db0714af7125d1be7f88f1c3727552dd62 (patch) | |
tree | 320aa7c9049d666ceac3e8911aa5b3099476789e | |
parent | 34d0aae6723cb114c79450221667fb55af7f2eae (diff) |
devmouse: deduplicate some code by using absmousetrack()
-rw-r--r-- | sys/src/9/port/devmouse.c | 37 |
1 files changed, 1 insertions, 36 deletions
diff --git a/sys/src/9/port/devmouse.c b/sys/src/9/port/devmouse.c index cb3ebe716..676639f49 100644 --- a/sys/src/9/port/devmouse.c +++ b/sys/src/9/port/devmouse.c @@ -568,46 +568,11 @@ scale(int x) void mousetrack(int dx, int dy, int b, int msec) { - int x, y, lastb; - - if(gscreen==nil) - return; - if(mouse.acceleration){ dx = scale(dx); dy = scale(dy); } - x = mouse.xy.x + dx; - if(x < gscreen->clipr.min.x) - x = gscreen->clipr.min.x; - if(x >= gscreen->clipr.max.x) - x = gscreen->clipr.max.x; - y = mouse.xy.y + dy; - if(y < gscreen->clipr.min.y) - y = gscreen->clipr.min.y; - if(y >= gscreen->clipr.max.y) - y = gscreen->clipr.max.y; - - lastb = mouse.buttons; - mouse.xy = Pt(x, y); - mouse.buttons = b; - mouse.redraw = 1; - mouse.counter++; - mouse.msec = msec; - - /* - * if the queue fills, we discard the entire queue and don't - * queue any more events until a reader polls the mouse. - */ - if(!mouse.qfull && lastb != b) { /* add to ring */ - mouse.queue[mouse.wi] = mouse.Mousestate; - if(++mouse.wi == nelem(mouse.queue)) - mouse.wi = 0; - if(mouse.wi == mouse.ri) - mouse.qfull = 1; - } - wakeup(&mouse.r); - drawactive(1); + absmousetrack(mouse.xy.x + dx, mouse.xy.y + dy, b, msec); } void |