[Scummvm-git-logs] scummvm master -> dc0bfbc7241c0085f5dabb80b051f82b77187952

sev- sev at scummvm.org
Wed May 22 00:14:59 CEST 2019


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
dc0bfbc724 COMMON: Fix button state desynchronization when warping mouse


Commit: dc0bfbc7241c0085f5dabb80b051f82b77187952
    https://github.com/scummvm/scummvm/commit/dc0bfbc7241c0085f5dabb80b051f82b77187952
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2019-05-22T00:14:56+02:00

Commit Message:
COMMON: Fix button state desynchronization when warping mouse

Changed paths:
    backends/events/default/default-events.cpp


diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp
index 85cf44c..86c56ea 100644
--- a/backends/events/default/default-events.cpp
+++ b/backends/events/default/default-events.cpp
@@ -281,15 +281,32 @@ void DefaultEventManager::purgeMouseEvents() {
 	while (!_eventQueue.empty()) {
 		Common::Event event = _eventQueue.pop();
 		switch (event.type) {
-		case Common::EVENT_MOUSEMOVE:
+		// Update button state even when purging events to avoid desynchronisation with real button state
 		case Common::EVENT_LBUTTONDOWN:
+			_mousePos = event.mouse;
+			_buttonState |= LBUTTON;
+			break;
+
 		case Common::EVENT_LBUTTONUP:
+			_mousePos = event.mouse;
+			_buttonState &= ~LBUTTON;
+			break;
+
 		case Common::EVENT_RBUTTONDOWN:
+			_mousePos = event.mouse;
+			_buttonState |= RBUTTON;
+			break;
+
 		case Common::EVENT_RBUTTONUP:
+			_mousePos = event.mouse;
+			_buttonState &= ~RBUTTON;
+			break;
+
 		case Common::EVENT_WHEELUP:
 		case Common::EVENT_WHEELDOWN:
 		case Common::EVENT_MBUTTONDOWN:
 		case Common::EVENT_MBUTTONUP:
+		case Common::EVENT_MOUSEMOVE:
 			// do nothing
 			break;
 		default:





More information about the Scummvm-git-logs mailing list