summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-02-17 13:14:38 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-03-02 13:29:23 -0500
commitcf2e35bcaa1d4053cd7a436b75fd64c68304a193 (patch)
tree78b63d4b5bea3180c71dd30efe8b29ffa23b4749
parent7ac3dbbfe376792edd902e2380795f0bc2466012 (diff)
downloadefl-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.c13
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