unset wl button mask when beginning a move/resize operation

ensure that clients do not receive a release event for any pressed
buttons
This commit is contained in:
Mike Blumenkrantz 2017-05-12 12:09:18 -04:00
parent fbca4fa5e4
commit b75f0d2be2
1 changed files with 9 additions and 1 deletions

View File

@ -2576,11 +2576,17 @@ _e_comp_wl_client_cb_focus_unset(void *data EINA_UNUSED, E_Client *ec)
e_comp_wl->kbd.focus = NULL;
}
static void
_e_comp_wl_client_cb_move_begin(void *data EINA_UNUSED, E_Client *ec EINA_UNUSED)
{
e_comp_wl->ptr.button_mask = 0;
}
static void
_e_comp_wl_client_cb_resize_begin(void *data EINA_UNUSED, E_Client *ec)
{
e_comp_wl->ptr.button_mask = 0;
if (e_client_has_xwindow(ec)) return;
e_comp_wl->resize.edges = 0;
if (ec->keyboard_resizing) return;
switch (ec->resize_mode)
@ -2907,6 +2913,8 @@ e_comp_wl_init(void)
e_client_hook_add(E_CLIENT_HOOK_FOCUS_UNSET,
_e_comp_wl_client_cb_focus_unset, NULL);
e_client_hook_add(E_CLIENT_HOOK_MOVE_BEGIN,
_e_comp_wl_client_cb_move_begin, NULL);
e_client_hook_add(E_CLIENT_HOOK_RESIZE_BEGIN,
_e_comp_wl_client_cb_resize_begin, NULL);
e_client_hook_add(E_CLIENT_HOOK_RESIZE_END,