diff --git a/src/ui/manager.cpp b/src/ui/manager.cpp index 7982afcff..d13fe8833 100644 --- a/src/ui/manager.cpp +++ b/src/ui/manager.cpp @@ -219,7 +219,7 @@ void Manager::generateSetCursorMessage(const gfx::Point& mousePos) Widget* dst = (capture_widget ? capture_widget: mouse_widget); if (dst) enqueueMessage(newMouseMessage(kSetCursorMessage, dst, - mousePos, currentMouseButtons(0))); + mousePos, currentMouseButtons())); else set_mouse_cursor(kArrowCursor); } @@ -447,7 +447,7 @@ void Manager::dispatchMessages() { // Add the "Queue Processing" message for the manager. enqueueMessage(newMouseMessage(kQueueProcessingMessage, this, - gfx::Point(jmouse_x(0), jmouse_y(0)), currentMouseButtons(0))); + gfx::Point(jmouse_x(0), jmouse_y(0)), currentMouseButtons())); pumpQueue(); } @@ -660,7 +660,7 @@ void Manager::setMouse(Widget* widget) it = widget_parents.begin(); Message* msg = newMouseMessage(kMouseEnterMessage, NULL, - gfx::Point(jmouse_x(0), jmouse_y(0)), currentMouseButtons(0)); + gfx::Point(jmouse_x(0), jmouse_y(0)), currentMouseButtons()); for (; it != widget_parents.end(); ++it) { (*it)->flags |= JI_HASMOUSE; @@ -1264,9 +1264,9 @@ Message* Manager::newMouseMessage(MessageType type, } // static -MouseButtons Manager::currentMouseButtons(int antique) +MouseButtons Manager::currentMouseButtons() { - return jmouse_b(antique); + return _internal_get_mouse_buttons(); } // static diff --git a/src/ui/manager.h b/src/ui/manager.h index 1b1b3ce90..f5e6e8516 100644 --- a/src/ui/manager.h +++ b/src/ui/manager.h @@ -108,7 +108,7 @@ namespace ui { static Message* newMouseMessage(MessageType type, Widget* widget, const gfx::Point& mousePos, MouseButtons buttons, const gfx::Point& wheelDelta = gfx::Point(0, 0)); - static MouseButtons currentMouseButtons(int antique); + static MouseButtons currentMouseButtons(); void broadcastKeyMsg(Message* msg); static Manager* m_defaultManager; diff --git a/src/ui/system.cpp b/src/ui/system.cpp index 719350abe..f8c3ee257 100644 --- a/src/ui/system.cpp +++ b/src/ui/system.cpp @@ -37,7 +37,7 @@ static bool native_cursor_set = false; // If we displayed a native cursor /* Mouse information (button and position). */ -static volatile int m_b[2]; +static volatile MouseButtons m_buttons; static int m_x[2]; static int m_y[2]; static int m_z[2]; @@ -270,8 +270,12 @@ void _internal_set_mouse_position(const gfx::Point& newPos) void _internal_set_mouse_buttons(MouseButtons buttons) { - m_b[1] = m_b[0]; - m_b[0] = buttons; + m_buttons = buttons; +} + +MouseButtons _internal_get_mouse_buttons() +{ + return m_buttons; } gfx::Point get_mouse_position() @@ -287,11 +291,6 @@ void set_mouse_position(const gfx::Point& newPos) _internal_set_mouse_position(newPos); } -MouseButtons jmouse_b(int antique) -{ - return (MouseButtons)m_b[antique & 1]; -} - int jmouse_x(int antique) { return m_x[antique & 1]; } int jmouse_y(int antique) { return m_y[antique & 1]; } int jmouse_z(int antique) { return m_z[antique & 1]; } diff --git a/src/ui/system.h b/src/ui/system.h index e39f7b320..d89baa836 100644 --- a/src/ui/system.h +++ b/src/ui/system.h @@ -47,11 +47,11 @@ namespace ui { void _internal_no_mouse_position(); void _internal_set_mouse_position(const gfx::Point& newPos); void _internal_set_mouse_buttons(MouseButtons buttons); + MouseButtons _internal_get_mouse_buttons(); gfx::Point get_mouse_position(); void set_mouse_position(const gfx::Point& newPos); - MouseButtons jmouse_b(int antique); int jmouse_x(int antique); int jmouse_y(int antique); int jmouse_z(int antique);