diff options
author | Jan Holesovsky <kendy@suse.cz> | 2012-02-03 20:39:39 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2012-02-03 20:39:39 +0100 |
commit | 898e88edc1a55e4825399d8d962f7f77cc3831ac (patch) | |
tree | 597e363ee2295d0d7e522cc8f5789f0c1fb96712 /vcl/android | |
parent | f076254c6db77a999d4ad0aecc6b7df7b43b4c32 (diff) |
android: An attempt to handle mouse events.
Diffstat (limited to 'vcl/android')
-rw-r--r-- | vcl/android/androidinst.cxx | 25 |
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: |