if (ec->comp_data->sub.below_obj)
evas_object_hide(ec->comp_data->sub.below_obj);
+
+ wl_signal_emit(&e_comp_wl->ptr_constraints.surface_unmap_signal, ec);
}
static void
}
e_comp_wl->kbd.focus = ec->comp_data->surface;
+ wl_signal_emit(&e_comp_wl->ptr_constraints.surface_focus_signal, ec);
}
static void
static Eina_Bool dont_use_xkb_cache = EINA_FALSE;
static Eina_Bool use_cache_keymap = EINA_FALSE;
+static E_Comp_Wl_Hook *_surface_commit_hook = NULL;
+
/* default XKB values from enviroment variables */
static char *_env_e_default_xkb_rules = NULL;
static char *_env_e_default_xkb_model = NULL;
{
e_comp_wl->ptr.resources =
eina_list_remove(e_comp_wl->ptr.resources, resource);
+
+ wl_signal_emit(&e_comp_wl->ptr_constraints.pointer_destroy_signal, resource);
}
static void
NULL, _e_comp_wl_input_cb_unbind_pointer_constraints);
}
+static void
+_e_comp_wl_input_cb_surface_commit(void *data EINA_UNUSED, E_Client *ec)
+{
+ wl_signal_emit(&e_comp_wl->ptr_constraints.surface_commit_signal, ec);
+}
+
static void
_e_comp_wl_input_keymap_cache_create(const char *keymap_path, char *keymap_data)
{
wl_signal_init(&e_comp_wl->ptr_constraints.surface_commit_signal);
wl_signal_init(&e_comp_wl->ptr_constraints.surface_focus_signal);
+ _surface_commit_hook = e_comp_wl_hook_add(E_COMP_WL_HOOK_CLIENT_SURFACE_COMMIT,
+ _e_comp_wl_input_cb_surface_commit,
+ NULL);
+
+
wl_array_init(&e_comp_wl->kbd.keys);
wl_array_init(&e_comp_wl->kbd.routed_keys);
E_FREE(_env_e_default_xkb_variant);
E_FREE(_env_e_default_xkb_opts );
+ /* delete surface commit hook */
+ if (_surface_commit_hook)
+ {
+ e_comp_wl_hook_del(_surface_commit_hook);
+ _surface_commit_hook = NULL;
+ }
+
/* destroy pointer resources */
EINA_LIST_FREE(e_comp_wl->ptr.resources, res)
wl_resource_destroy(res);