diff options
author | Kostadin Damyanov <maxmight@gmail.com> | 2015-06-18 22:41:33 +0300 |
---|---|---|
committer | Kostadin Damyanov <maxmight@gmail.com> | 2015-06-18 22:41:33 +0300 |
commit | f10eb8ffa1a7f6bee9b5228ea1204fd93844e4cc (patch) | |
tree | 954e99f563c8af191ff17849d1bcd0cbf4ab5dfe /platform/haiku/haiku_direct_window.cpp | |
parent | 2102d35e9c18a0cede87e7e45d375153702b3ea5 (diff) | |
download | redot-engine-f10eb8ffa1a7f6bee9b5228ea1204fd93844e4cc.tar.gz |
Haiku: implement get_mouse_pos() and get_mouse_button_state()
Diffstat (limited to 'platform/haiku/haiku_direct_window.cpp')
-rw-r--r-- | platform/haiku/haiku_direct_window.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/platform/haiku/haiku_direct_window.cpp b/platform/haiku/haiku_direct_window.cpp index 6ff4369087..62231565a9 100644 --- a/platform/haiku/haiku_direct_window.cpp +++ b/platform/haiku/haiku_direct_window.cpp @@ -6,6 +6,7 @@ HaikuDirectWindow::HaikuDirectWindow(BRect p_frame) { last_mouse_pos_valid = false; last_buttons_state = 0; + last_button_mask = 0; } @@ -154,11 +155,11 @@ void HaikuDirectWindow::DispatchMouseMoved(BMessage* message) { uint32 buttons = message->FindInt32("buttons"); if (!last_mouse_pos_valid) { - last_mouse_pos = pos; + last_mouse_position = pos; last_mouse_pos_valid = true; } - Point2i rel = pos - last_mouse_pos; + Point2i rel = pos - last_mouse_position; InputEvent motion_event; motion_event.ID = ++event_id; @@ -178,7 +179,7 @@ void HaikuDirectWindow::DispatchMouseMoved(BMessage* message) { motion_event.mouse_motion.relative_x = rel.x; motion_event.mouse_motion.relative_y = rel.y; - last_mouse_pos=pos; + last_mouse_position = pos; input->parse_input_event(motion_event); } @@ -194,8 +195,8 @@ inline InputModifierState HaikuDirectWindow::GetKeyModifierState(uint32 p_state) return state; } -inline unsigned int HaikuDirectWindow::GetMouseButtonState(uint32 p_state) { - unsigned int state = 0; +inline int HaikuDirectWindow::GetMouseButtonState(uint32 p_state) { + int state = 0; if (p_state & B_PRIMARY_MOUSE_BUTTON) { state |= 1 << 0; @@ -209,5 +210,7 @@ inline unsigned int HaikuDirectWindow::GetMouseButtonState(uint32 p_state) { state |= 1 << 2; } + last_button_mask = state; + return state; } |