From 285951c8cbba80546fde25f5f76d60c7f577d101 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sat, 22 Nov 2014 18:45:14 +0900 Subject: [PATCH] windows - allow close button to work again in internal wins since the move to elm_win ... windows don't close with close button in the titlebar. this fixes that in the simplest way - enabling autodel on the window. --- src/bin/e_dialog.c | 1 + src/bin/e_obj_dialog.c | 1 + src/bin/e_win.c | 1 + src/modules/conf/e_conf.c | 1 + src/modules/conf_intl/e_int_config_imc_import.c | 1 + src/modules/conf_theme/e_int_config_theme_import.c | 1 + src/modules/fileman/e_fwin.c | 1 + src/modules/shot/e_mod_main.c | 1 + 8 files changed, 8 insertions(+) diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c index 45950efc9..57ec729d6 100644 --- a/src/bin/e_dialog.c +++ b/src/bin/e_dialog.c @@ -31,6 +31,7 @@ _e_dialog_internal_new(Evas_Object *parent, const char *name, const char *class, free(dia); return NULL; } + elm_win_autodel_set(dia->win, EINA_TRUE); elm_win_modal_set(dia->win, !!parent); e = evas_object_evas_get(dia->win); evas_object_event_callback_add(dia->win, EVAS_CALLBACK_DEL, _e_dialog_cb_delete, dia); diff --git a/src/bin/e_obj_dialog.c b/src/bin/e_obj_dialog.c index 526062ff9..f3ef5b75e 100644 --- a/src/bin/e_obj_dialog.c +++ b/src/bin/e_obj_dialog.c @@ -34,6 +34,7 @@ e_obj_dialog_new(E_Comp *c EINA_UNUSED, char *title, char *class_name, char *cla free(od); return NULL; } + elm_win_autodel_set(od->win, EINA_TRUE); evas_object_event_callback_add(od->win, EVAS_CALLBACK_DEL, (Evas_Object_Event_Cb)_e_obj_dialog_cb_delete, od); ecore_evas_name_class_set(e_win_ee_get(od->win), class_name, class_class); elm_win_title_set(od->win, title); diff --git a/src/bin/e_win.c b/src/bin/e_win.c index 1550c2f52..8bc5954db 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -415,6 +415,7 @@ e_elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) e_util_env_set("ELM_ACCEL", "none"); o = elm_win_add(parent, name, type); + elm_win_autodel_set(o, EINA_TRUE); e_util_env_set("ELM_ACCEL", eng); free(eng); return o; diff --git a/src/modules/conf/e_conf.c b/src/modules/conf/e_conf.c index 7838fbdca..2b7fff6ad 100644 --- a/src/modules/conf/e_conf.c +++ b/src/modules/conf/e_conf.c @@ -116,6 +116,7 @@ e_configure_show(E_Comp *comp, const char *params) free(eco); return; } + elm_win_autodel_set(eco->win, EINA_TRUE); evas_object_data_set(eco->win, "e_conf_win", eco); eco->comp = comp; eco->evas = evas_object_evas_get(eco->win); diff --git a/src/modules/conf_intl/e_int_config_imc_import.c b/src/modules/conf_intl/e_int_config_imc_import.c index 5905aa80a..f67093b0b 100644 --- a/src/modules/conf_intl/e_int_config_imc_import.c +++ b/src/modules/conf_intl/e_int_config_imc_import.c @@ -56,6 +56,7 @@ e_int_config_imc_import(E_Config_Dialog *parent) return NULL; } + elm_win_autodel_set(win, EINA_TRUE); evas = evas_object_evas_get(win); cfdata = E_NEW(E_Config_Dialog_Data, 1); diff --git a/src/modules/conf_theme/e_int_config_theme_import.c b/src/modules/conf_theme/e_int_config_theme_import.c index 4da72b3ed..27ef122e1 100644 --- a/src/modules/conf_theme/e_int_config_theme_import.c +++ b/src/modules/conf_theme/e_int_config_theme_import.c @@ -57,6 +57,7 @@ e_int_config_theme_import(E_Config_Dialog *parent) evas = evas_object_evas_get(win); + elm_win_autodel_set(win, EINA_TRUE); cfdata = E_NEW(E_Config_Dialog_Data, 1); import->cfdata = cfdata; import->win = win; diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index 13440ff4e..b1f7be720 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -682,6 +682,7 @@ _e_fwin_new(const char *dev, free(fwin); return NULL; } + elm_win_autodel_set(fwin->win, EINA_TRUE); fwins = eina_list_append(fwins, fwin); evas_object_event_callback_add(fwin->win, EVAS_CALLBACK_DEL, _e_fwin_cb_delete, fwin); evas_object_event_callback_add(fwin->win, EVAS_CALLBACK_RESIZE, _e_fwin_cb_resize, fwin); diff --git a/src/modules/shot/e_mod_main.c b/src/modules/shot/e_mod_main.c index 5e469cbf0..3803775e3 100644 --- a/src/modules/shot/e_mod_main.c +++ b/src/modules/shot/e_mod_main.c @@ -677,6 +677,7 @@ _shot_now(E_Zone *zone, E_Client *ec, const char *params) if (win) e_object_del(E_OBJECT(win)); win = elm_win_add(NULL, NULL, ELM_WIN_BASIC); + elm_win_autodel_set(win, EINA_TRUE); evas = evas_object_evas_get(win); elm_win_title_set(win, _("Where to put Screenshot...")); evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_delete_cb, NULL);