From 6ebf5966c3d52a48084d8c67220d22177f48096b Mon Sep 17 00:00:00 2001 From: David Capello Date: Sun, 7 Mar 2010 15:16:15 -0200 Subject: [PATCH] Fixed a bug which pressed/released messages were generated incorrectly for mouse buttons pressed/released in groups. --- src/jinete/jmanager.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/jinete/jmanager.cpp b/src/jinete/jmanager.cpp index 4529a9e51..c45c0aa0e 100644 --- a/src/jinete/jmanager.cpp +++ b/src/jinete/jmanager.cpp @@ -371,12 +371,15 @@ bool jmanager_generate_messages(JWidget manager) } // mouse clicks - if ((jmouse_b(0) != jmouse_b(1)) && - ((!jmouse_b(0)) || (!jmouse_b(1)))) { + if (jmouse_b(0) != jmouse_b(1)) { int current_ticks = ji_clock; + bool pressed = + ((jmouse_b(1) & 1) == 0 && (jmouse_b(0) & 1) == 1) || + ((jmouse_b(1) & 2) == 0 && (jmouse_b(0) & 2) == 2) || + ((jmouse_b(1) & 4) == 0 && (jmouse_b(0) & 4) == 4); - msg = new_mouse_msg(!jmouse_b(1) ? JM_BUTTONPRESSED: - JM_BUTTONRELEASED, + msg = new_mouse_msg(pressed ? JM_BUTTONPRESSED: + JM_BUTTONRELEASED, capture_widget ? capture_widget: mouse_widget);