summaryrefslogtreecommitdiff
path: root/vcl/android
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2012-02-03 20:39:39 +0100
committerJan Holesovsky <kendy@suse.cz>2012-02-03 20:39:39 +0100
commit898e88edc1a55e4825399d8d962f7f77cc3831ac (patch)
tree597e363ee2295d0d7e522cc8f5789f0c1fb96712 /vcl/android
parentf076254c6db77a999d4ad0aecc6b7df7b43b4c32 (diff)
android: An attempt to handle mouse events.
Diffstat (limited to 'vcl/android')
-rw-r--r--vcl/android/androidinst.cxx25
1 files changed, 24 insertions, 1 deletions
diff --git a/vcl/android/androidinst.cxx b/vcl/android/androidinst.cxx
index 50a3040da0c6..ec38cec9792a 100644
--- a/vcl/android/androidinst.cxx
+++ b/vcl/android/androidinst.cxx
@@ -399,7 +399,7 @@ void AndroidSalInstance::onAppCmd (struct android_app* app, int32_t cmd)
int32_t AndroidSalInstance::onInputEvent (struct android_app* app, AInputEvent* event)
{
- bool bHandled;
+ bool bHandled = false;
fprintf (stderr, "input event for app %p, event %p type %d source %d device id %d\n",
app, event,
AInputEvent_getType(event),
@@ -437,6 +437,8 @@ int32_t AndroidSalInstance::onInputEvent (struct android_app* app, AInputEvent*
else
fprintf (stderr, "no focused frame to emit event on\n");
+ fprintf( stderr, "bHandled == %s\n", bHandled? "true": "false" );
+
// FIXME: queueing full re-draw on key events ...
mbQueueReDraw = true;
break;
@@ -456,6 +458,27 @@ int32_t AndroidSalInstance::onInputEvent (struct android_app* app, AInputEvent*
AMotionEvent_getX(event, i),
AMotionEvent_getY(event, i),
AMotionEvent_getPressure(event, i));
+
+ SalMouseEvent aMouseEvent;
+ sal_uInt16 nEvent = 0;
+
+ // FIXME: all this filing the nEvent and aMouseEvent has to be cleaned up
+ nEvent = AMotionEvent_getAction(event)? SALEVENT_MOUSEBUTTONUP: SALEVENT_MOUSEBUTTONDOWN;
+
+ aMouseEvent.mnX = AMotionEvent_getXOffset(event);
+ aMouseEvent.mnY = AMotionEvent_getYOffset(event);
+ aMouseEvent.mnTime = 0; // FIXME
+ aMouseEvent.mnCode = 0; // FIXME
+ aMouseEvent.mnButton = MOUSE_LEFT; // FIXME
+
+ SalFrame *pFocus = SvpSalFrame::GetFocusFrame();
+ if (pFocus)
+ bHandled = pFocus->CallCallback( nEvent, &aMouseEvent );
+ else
+ fprintf (stderr, "no focused frame to emit event on\n");
+
+ fprintf( stderr, "bHandled == %s\n", bHandled? "true": "false" );
+
break;
}
default: