diff --git a/src/io.c b/src/io.c index 1ab8097..f741d14 100644 --- a/src/io.c +++ b/src/io.c @@ -86,21 +86,21 @@ unsigned int caca_get_event(void) if(xevent.type == MotionNotify) { - unsigned int x = xevent.xmotion.x / x11_font_width; - unsigned int y = xevent.xmotion.y / x11_font_height; + unsigned int newx = xevent.xmotion.x / x11_font_width; + unsigned int newy = xevent.xmotion.y / x11_font_height; - if(x11_x == x && x11_y == y) + if(x11_x == newx && x11_y == newy) continue; - if(x >= _caca_width) - x = _caca_width - 1; - if(y >= _caca_height) - y = _caca_height - 1; + if(newx >= _caca_width) + newx = _caca_width - 1; + if(newy >= _caca_height) + newy = _caca_height - 1; - x11_x = x & 0xfff; - x11_y = y & 0xfff; + x11_x = newx & 0xfff; + x11_y = newy & 0xfff; - return CACA_EVENT_MOUSE_MOTION | (x << 12) | (y << 0); + return CACA_EVENT_MOUSE_MOTION | (newx << 12) | (newy << 0); } if(xevent.type == ButtonPress) @@ -170,12 +170,9 @@ unsigned int caca_get_event(void) MEVENT mevent; _pop_key(); getmouse(&mevent); - - event |= (1) << 16; - event |= (mevent.x) << 8; - event |= (mevent.y) << 0; - - return CACA_EVENT_MOUSE_PRESS | event; + _push_key(CACA_EVENT_MOUSE_PRESS | 1); + return CACA_EVENT_MOUSE_MOTION + | (mevent.x << 12) | (mevent.y << 0); } switch(keybuf[0]) @@ -243,11 +240,9 @@ unsigned int caca_get_event(void) /* ^[[Mxxx */ _pop_key(); _pop_key(); - event |= (_pop_key() - ' ') << 16; - event |= (_pop_key() - '!') << 8; - event |= (_pop_key() - '!') << 0; - - return CACA_EVENT_MOUSE_PRESS | event; + _push_key(CACA_EVENT_MOUSE_PRESS | (_pop_key() - ' ')); + return CACA_EVENT_MOUSE_MOTION + | ((_pop_key() - '!') << 12) | ((_pop_key() - '!') << 0); } else if(keybuf[0] == '[' && keybuf[1] == '1' && keybuf[3] == '~' && keybuf[2] >= '5' && keybuf[2] != '6' && keybuf[2] <= '9')