diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-02-17 13:14:38 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-03-02 13:29:23 -0500 |
commit | cf2e35bcaa1d4053cd7a436b75fd64c68304a193 (patch) | |
tree | 78b63d4b5bea3180c71dd30efe8b29ffa23b4749 | |
parent | 7ac3dbbfe376792edd902e2380795f0bc2466012 (diff) | |
download | efl-cf2e35bcaa1d4053cd7a436b75fd64c68304a193.tar.gz |
ecore-wl2: do not send double mouse up events during input ungrab
if the ungrab is triggered from a mouse up event, this ensures that a
mouse up will be sent from the ungrab function. continuing to send a
mouse up event in addition to this will guarantee multiple mouse events
are emitted
@fix
-rw-r--r-- | src/lib/ecore_wl2/ecore_wl2_input.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index 9d0301a0d6..f3623258c1 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -573,12 +573,11 @@ _pointer_cb_button(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned } else { - if (input->focus.pointer) - _ecore_wl2_input_mouse_up_send(input, input->focus.pointer, - 0, button, timestamp); - if ((input->grab.window) && (input->grab.button == button)) _ecore_wl2_input_ungrab(input); + else if (input->focus.pointer) + _ecore_wl2_input_mouse_up_send(input, input->focus.pointer, + 0, button, timestamp); } } @@ -953,11 +952,11 @@ _touch_cb_up(void *data, struct wl_touch *touch EINA_UNUSED, unsigned int serial input->timestamp = timestamp; input->display->serial = serial; - _ecore_wl2_input_mouse_up_send(input, input->focus.touch, id, - BTN_LEFT, timestamp); - if ((input->grab.window) && (input->grab.button == BTN_LEFT)) _ecore_wl2_input_ungrab(input); + else + _ecore_wl2_input_mouse_up_send(input, input->focus.touch, id, + BTN_LEFT, timestamp); } static void |