handle nested compositor delete requests
the previous implementation of this using ee callbacks broke during elm integration since elm overrides all of those callbacks
This commit is contained in:
parent
71c9cedfbf
commit
118a70730f
|
@ -1022,6 +1022,12 @@ _e_comp_resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, vo
|
||||||
e_comp_canvas_update();
|
e_comp_canvas_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_delete_request()
|
||||||
|
{
|
||||||
|
e_sys_action_do(E_SYS_LOGOUT, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
EINTERN Eina_Bool
|
EINTERN Eina_Bool
|
||||||
e_comp_init(void)
|
e_comp_init(void)
|
||||||
{
|
{
|
||||||
|
@ -1178,6 +1184,9 @@ out:
|
||||||
e_comp->elm = elm_win_fake_add(e_comp->ee);
|
e_comp->elm = elm_win_fake_add(e_comp->ee);
|
||||||
evas_object_event_callback_add(e_comp->elm, EVAS_CALLBACK_RESIZE, _e_comp_resize, NULL);
|
evas_object_event_callback_add(e_comp->elm, EVAS_CALLBACK_RESIZE, _e_comp_resize, NULL);
|
||||||
elm_win_fullscreen_set(e_comp->elm, 1);
|
elm_win_fullscreen_set(e_comp->elm, 1);
|
||||||
|
elm_win_autodel_set(e_comp->elm, 1);
|
||||||
|
if (!e_comp->screen)
|
||||||
|
evas_object_smart_callback_add(e_comp->elm, "delete,request", _e_comp_delete_request, NULL);
|
||||||
ecore_evas_focus_set(e_comp->ee, 0);
|
ecore_evas_focus_set(e_comp->ee, 0);
|
||||||
ecore_evas_focus_set(e_comp->ee, 1);
|
ecore_evas_focus_set(e_comp->ee, 1);
|
||||||
evas_object_show(e_comp->elm);
|
evas_object_show(e_comp->elm);
|
||||||
|
|
|
@ -2,12 +2,6 @@
|
||||||
|
|
||||||
E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_Wl" };
|
E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_Wl" };
|
||||||
|
|
||||||
static void
|
|
||||||
_cb_delete_request(Ecore_Evas *ee EINA_UNUSED)
|
|
||||||
{
|
|
||||||
ecore_main_loop_quit();
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
|
_cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
|
||||||
{
|
{
|
||||||
|
@ -59,7 +53,6 @@ e_modapi_init(E_Module *m)
|
||||||
}
|
}
|
||||||
|
|
||||||
ecore_evas_data_set(e_comp->ee, "comp", e_comp);
|
ecore_evas_data_set(e_comp->ee, "comp", e_comp);
|
||||||
ecore_evas_callback_delete_request_set(e_comp->ee, _cb_delete_request);
|
|
||||||
ecore_evas_title_set(e_comp->ee, "Enlightenment: WL-WL");
|
ecore_evas_title_set(e_comp->ee, "Enlightenment: WL-WL");
|
||||||
ecore_evas_name_class_set(e_comp->ee, "E", "compositor");
|
ecore_evas_name_class_set(e_comp->ee, "E", "compositor");
|
||||||
|
|
||||||
|
|
|
@ -5,12 +5,6 @@ E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_X11" };
|
||||||
|
|
||||||
static Ecore_Event_Handler *kbd_hdlr;
|
static Ecore_Event_Handler *kbd_hdlr;
|
||||||
|
|
||||||
static void
|
|
||||||
_cb_delete_request(Ecore_Evas *ee EINA_UNUSED)
|
|
||||||
{
|
|
||||||
ecore_main_loop_quit();
|
|
||||||
}
|
|
||||||
|
|
||||||
E_API void *
|
E_API void *
|
||||||
e_modapi_init(E_Module *m)
|
e_modapi_init(E_Module *m)
|
||||||
{
|
{
|
||||||
|
@ -35,7 +29,6 @@ e_modapi_init(E_Module *m)
|
||||||
ERR("Could not create ecore_evas canvas");
|
ERR("Could not create ecore_evas canvas");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
ecore_evas_callback_delete_request_set(e_comp->ee, _cb_delete_request);
|
|
||||||
ecore_evas_title_set(e_comp->ee, "Enlightenment: WL-X11");
|
ecore_evas_title_set(e_comp->ee, "Enlightenment: WL-X11");
|
||||||
ecore_evas_name_class_set(e_comp->ee, "E", "compositor");
|
ecore_evas_name_class_set(e_comp->ee, "E", "compositor");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue