diff options
Diffstat (limited to 'backends/platform/android')
| -rw-r--r-- | backends/platform/android/events.cpp | 26 | ||||
| -rw-r--r-- | backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java | 6 | 
2 files changed, 24 insertions, 8 deletions
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp index cab09e04dd..da17b8ec32 100644 --- a/backends/platform/android/events.cpp +++ b/backends/platform/android/events.cpp @@ -569,15 +569,29 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,  		return;  	case JE_BALL: -		e.type = Common::EVENT_MOUSEMOVE; -  		e.mouse = getEventManager()->getMousePos(); -		// already multiplied by 100 -		e.mouse.x += arg1 * _trackball_scale / _eventScaleX; -		e.mouse.y += arg2 * _trackball_scale / _eventScaleY; +		switch (arg1) { +		case JACTION_DOWN: +			e.type = Common::EVENT_LBUTTONDOWN; +			break; +		case JACTION_UP: +			e.type = Common::EVENT_LBUTTONUP; +			break; +		case JACTION_MULTIPLE: +			e.type = Common::EVENT_MOUSEMOVE; + +			// already multiplied by 100 +			e.mouse.x += arg2 * _trackball_scale / _eventScaleX; +			e.mouse.y += arg3 * _trackball_scale / _eventScaleY; -		clipMouse(e.mouse); +			clipMouse(e.mouse); + +			break; +		default: +			LOGE("unhandled jaction on system key: %d", arg1); +			return; +		}  		lockMutex(_event_queue_lock);  		_event_queue.push(e); diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java index da589a326e..baf128292e 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java +++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java @@ -48,8 +48,10 @@ public class ScummVMEvents implements  	}  	public boolean onTrackballEvent(MotionEvent e) { -		_scummvm.pushEvent(JE_BALL, (int)(e.getX() * e.getXPrecision() * 100), -							(int)(e.getY() * e.getYPrecision() * 100), 0, 0, 0); +		_scummvm.pushEvent(JE_BALL, e.getAction(), +							(int)(e.getX() * e.getXPrecision() * 100), +							(int)(e.getY() * e.getYPrecision() * 100), +							0, 0);  		return true;  	}  | 
