diff options
Diffstat (limited to 'gui/gui.cpp')
-rw-r--r-- | gui/gui.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gui/gui.cpp b/gui/gui.cpp index 3aef983ab..c755a9848 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -342,18 +342,22 @@ void InputHandler::process_EV_ABS(input_event& ev) if (ev.code == 0) { +#ifndef TW_USE_KEY_CODE_TOUCH_SYNC if (state == AS_IN_ACTION_AREA) { LOGEVENT("TOUCH_RELEASE: %d,%d\n", x, y); PageManager::NotifyTouch(TOUCH_RELEASE, x, y); } touch_status = TS_NONE; +#endif } else { if (!touch_status) { +#ifndef TW_USE_KEY_CODE_TOUCH_SYNC doTouchStart(); +#endif } else { @@ -403,6 +407,13 @@ void InputHandler::process_EV_KEY(input_event& ev) kb->KeyUp(KEY_BACK); } else if (ev.value != 0) { // This is a key press +#ifdef TW_USE_KEY_CODE_TOUCH_SYNC + if (ev.code == TW_USE_KEY_CODE_TOUCH_SYNC) { + LOGEVENT("key code %i key press == touch start %i %i\n", TW_USE_KEY_CODE_TOUCH_SYNC, x, y); + doTouchStart(); + return; + } +#endif if (kb->KeyDown(ev.code)) { // Key repeat is enabled for this key key_status = KS_KEY_PRESSED; @@ -417,6 +428,12 @@ void InputHandler::process_EV_KEY(input_event& ev) kb->KeyUp(ev.code); key_status = KS_NONE; touch_status = TS_NONE; +#ifdef TW_USE_KEY_CODE_TOUCH_SYNC + if (ev.code == TW_USE_KEY_CODE_TOUCH_SYNC) { + LOGEVENT("key code %i key release == touch release %i %i\n", TW_USE_KEY_CODE_TOUCH_SYNC, x, y); + PageManager::NotifyTouch(TOUCH_RELEASE, x, y); + } +#endif } } |