{
ELOGF("COMP", "CRITICAL. focused is deleted ec.", ec);
ELOGF("FOCUS", "CLIENT FOCUS_SET", NULL);
+ g_mutex_lock(&focused_ec_mutex);
focused = NULL;
+ g_mutex_unlock(&focused_ec_mutex);
}
E_OBJECT(ec)->references--;
DBG("wl_array_add: Out of memory\n");
g_mutex_unlock(&e_comp_wl->kbd.keys_mutex);
g_mutex_unlock(&e_comp_wl->kbd.focused_mutex);
+ g_mutex_unlock(&e_comp->input_key_grabs_mutex);
return EINA_FALSE;
}
g_mutex_unlock(&e_comp_wl->kbd.keys_mutex);
struct wl_resource *surface = e_comp_wl_client_surface_get(ec);
EINA_SAFETY_ON_NULL_RETURN_VAL(surface, EINA_FALSE);
- if (!!surface) return EINA_FALSE;
+ if (!surface) return EINA_FALSE;
wc = wl_resource_get_client(surface);
serial = wl_display_next_serial(e_comp_wl->wl.disp);
EINA_LIST_FOREACH(e_comp_wl->ptr.resources, l, res)
g_mutex_init(&e_comp_wl->xkb.keymap_mutex);
g_mutex_init(&e_comp_wl->xkb.state_mutex);
- /* get default keyboard repeat rate/delay from configuration */
- e_comp_wl->kbd.repeat_delay = e_config->keyboard.repeat_delay;
- e_comp_wl->kbd.repeat_rate = e_config->keyboard.repeat_rate;
-
- /* check for valid repeat_delay and repeat_rate value */
- /* if invalid, set the default value of repeat delay and rate value */
g_mutex_lock(&e_comp_wl->kbd.repeat_delay_mutex);
+ /* get default keyboard repeat delay from configuration */
+ e_comp_wl->kbd.repeat_delay = e_config->keyboard.repeat_delay;
+ /* check for valid repeat_delay */
+ /* if invalid, set the default value of repeat delay */
if (e_comp_wl->kbd.repeat_delay < 0) e_comp_wl->kbd.repeat_delay = 400;
g_mutex_unlock(&e_comp_wl->kbd.repeat_delay_mutex);
g_mutex_lock(&e_comp_wl->kbd.repeat_rate_mutex);
+ /* get default keyboard repeat rate from configuration */
+ e_comp_wl->kbd.repeat_rate = e_config->keyboard.repeat_rate;
+ /* check for valid repeat_rate value */
+ /* if invalid, set the default value of repeat rate value */
if (e_comp_wl->kbd.repeat_rate < 0) e_comp_wl->kbd.repeat_rate = 25;
g_mutex_unlock(&e_comp_wl->kbd.repeat_rate_mutex);
e_devicemgr->last_device_touch = NULL;
if (e_devicemgr->last_device_kbd == dev)
- e_devicemgr->last_device_kbd = NULL;
+ {
+ g_mutex_lock(&e_devicemgr->last_device_kbd_mutex);
+ e_devicemgr->last_device_kbd = NULL;
+ g_mutex_unlock(&e_devicemgr->last_device_kbd_mutex);
+ }
E_FREE(dev);
}
if (!(edev->xkb.state = xkb_state_new(edev->xkb.keymap)))
{
g_mutex_unlock(&edev->xkb.state_mutex);
+ g_mutex_unlock(&edev->xkb.keymap_mutex);
ERR("Failed to create xkb state: %m");
return;
}