diff --git a/po/POTFILES.in b/po/POTFILES.in index 942f6857a..f1748b2ff 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -192,7 +192,6 @@ src/modules/conf_window_manipulation/e_int_config_window_display.c src/modules/conf_window_manipulation/e_int_config_focus.c src/modules/conf_window_manipulation/e_int_config_window_geometry.c src/modules/conf_window_manipulation/e_int_config_window_maxpolicy.c -src/modules/conf_window_manipulation/e_int_config_window_stacking.c src/modules/conf_window_manipulation/e_int_config_window_process.c src/modules/conf_window_manipulation/e_mod_main.c src/modules/conf_window_remembers/e_int_config_remembers.c diff --git a/src/modules/conf_window_manipulation/Makefile.am b/src/modules/conf_window_manipulation/Makefile.am index b4e70c8f3..96c0dabcb 100644 --- a/src/modules/conf_window_manipulation/Makefile.am +++ b/src/modules/conf_window_manipulation/Makefile.am @@ -23,7 +23,6 @@ module_la_SOURCES = e_mod_main.c \ e_int_config_window_manip.h \ e_int_config_window_geometry.c \ e_int_config_window_maxpolicy.c \ - e_int_config_window_stacking.c \ e_int_config_window_process.c \ e_int_config_window_display.c \ e_int_config_window_display.h \ diff --git a/src/modules/conf_window_manipulation/e_int_config_focus.c b/src/modules/conf_window_manipulation/e_int_config_focus.c index f6c507432..80a928134 100644 --- a/src/modules/conf_window_manipulation/e_int_config_focus.c +++ b/src/modules/conf_window_manipulation/e_int_config_focus.c @@ -10,12 +10,14 @@ static int _advanced_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static int _advanced_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_advanced_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); +static void _cb_disable_check_list(void *data, Evas_Object *obj); /* Actual config data we will be playing with whil the dialog is active */ struct _E_Config_Dialog_Data { /*- BASIC -*/ int mode; + int use_auto_raise; /*- ADVANCED -*/ int focus_policy; int focus_setting; @@ -25,6 +27,11 @@ struct _E_Config_Dialog_Data int focus_last_focused_per_desktop; int focus_revert_on_hide_or_close; int pointer_slide; + double auto_raise_delay; + int border_raise_on_mouse_action; + int border_raise_on_focus; + int allow_above_fullscreen; + Eina_List *autoraise_list; }; /* a nice easy setup function that does the dirty work */ @@ -70,6 +77,13 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->pointer_slide = e_config->pointer_slide; cfdata->mode = cfdata->focus_policy; + + cfdata->use_auto_raise = e_config->use_auto_raise; + cfdata->auto_raise_delay = e_config->auto_raise_delay; + cfdata->border_raise_on_mouse_action = + e_config->border_raise_on_mouse_action; + cfdata->border_raise_on_focus = e_config->border_raise_on_focus; + cfdata->allow_above_fullscreen = e_config->allow_above_fullscreen; } static void * @@ -89,6 +103,7 @@ _create_data(E_Config_Dialog *cfd __UNUSED__) static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) { + eina_list_free(cfdata->autoraise_list); /* Free the cfdata */ E_FREE(cfdata); } @@ -132,6 +147,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) e_config->focus_revert_on_hide_or_close = 1; e_config->pointer_slide = 1; } + e_config->use_auto_raise = cfdata->use_auto_raise; e_border_button_bindings_grab_all(); e_config_save_queue(); return 1; /* Apply was OK */ @@ -140,7 +156,8 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) static int _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) { - return e_config->focus_policy != cfdata->mode; + return ((e_config->focus_policy != cfdata->mode) || + (e_config->use_auto_raise != cfdata->use_auto_raise)); } static int @@ -158,6 +175,12 @@ _advanced_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) e_config->focus_revert_on_hide_or_close = cfdata->focus_revert_on_hide_or_close; e_config->pointer_slide = cfdata->pointer_slide; + + e_config->use_auto_raise = cfdata->use_auto_raise; + e_config->auto_raise_delay = cfdata->auto_raise_delay; + e_config->border_raise_on_mouse_action = cfdata->border_raise_on_mouse_action; + e_config->border_raise_on_focus = cfdata->border_raise_on_focus; + e_config->allow_above_fullscreen = cfdata->allow_above_fullscreen; e_border_button_bindings_grab_all(); e_config_save_queue(); return 1; /* Apply was OK */ @@ -173,7 +196,12 @@ _advanced_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *c (e_config->always_click_to_focus != cfdata->always_click_to_focus) || (e_config->focus_last_focused_per_desktop != cfdata->focus_last_focused_per_desktop) || (e_config->focus_revert_on_hide_or_close != cfdata->focus_revert_on_hide_or_close) || - (e_config->pointer_slide != cfdata->pointer_slide)); + (e_config->pointer_slide != cfdata->pointer_slide) || + (e_config->use_auto_raise != cfdata->use_auto_raise) || + (e_config->auto_raise_delay != cfdata->auto_raise_delay) || + (e_config->border_raise_on_mouse_action != cfdata->border_raise_on_mouse_action) || + (e_config->border_raise_on_focus != cfdata->border_raise_on_focus) || + (e_config->allow_above_fullscreen != cfdata->allow_above_fullscreen)); } /**--GUI--**/ @@ -193,6 +221,9 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data ob = e_widget_radio_add(evas, _("Most recent Window under the Mouse"), E_FOCUS_SLOPPY, rg); e_widget_list_object_append(o, ob, 1, 0, 0.0); + ob = e_widget_check_add(evas, _("Raise windows on mouse over"), + &(cfdata->use_auto_raise)); + e_widget_list_object_append(o, ob, 1, 0, 0.5); return o; } @@ -201,6 +232,7 @@ _advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Da { /* generate the core widget layout for an advanced dialog */ Evas_Object *otb, *ol, *ob, *of; + Evas_Object *autoraise_check; E_Radio_Group *rg; otb = e_widget_toolbook_add(evas, (24 * e_scale), (24 * e_scale)); @@ -230,6 +262,42 @@ _advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Da e_widget_toolbook_page_append(otb, NULL, _("Focus"), ol, 1, 0, 1, 0, 0.5, 0.0); + /* Stacking */ + ol = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Autoraise"), 0); + autoraise_check = e_widget_check_add(evas, _("Raise windows on mouse over"), + &(cfdata->use_auto_raise)); + e_widget_framelist_object_append(of, autoraise_check); + ob = e_widget_label_add(evas, _("Delay before raising:")); + cfdata->autoraise_list = eina_list_append(cfdata->autoraise_list, ob); + e_widget_disabled_set(ob, !cfdata->use_auto_raise); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.1f sec"), 0.0, 9.9, 0.1, 0, + &(cfdata->auto_raise_delay), NULL, 100); + cfdata->autoraise_list = eina_list_append(cfdata->autoraise_list, ob); + e_widget_disabled_set(ob, !cfdata->use_auto_raise); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(ol, of, 1, 0, 0.5); + // handler for enable/disable widget array + e_widget_on_change_hook_set(autoraise_check, + _cb_disable_check_list, cfdata->autoraise_list); + + of = e_widget_framelist_add(evas, _("Raise Window"), 0); + e_widget_framelist_content_align_set(of, 0.0, 0.0); + ob = e_widget_check_add(evas, _("Raise when starting to move or resize"), + &(cfdata->border_raise_on_mouse_action)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("Raise when focusing"), + &(cfdata->border_raise_on_focus)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("Allow windows above fullscreen window"), + &(cfdata->allow_above_fullscreen)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(ol, of, 1, 0, 0.5); + e_widget_toolbook_page_append(otb, NULL, _("Stacking"), ol, + 1, 0, 1, 0, 0.5, 0.0); + /* Misc */ ol = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Other Settings"), 0); @@ -265,3 +333,15 @@ _advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Da e_widget_toolbook_page_show(otb, 0); return otb; } + +static void +_cb_disable_check_list(void *data, Evas_Object *obj) +{ + const Eina_List *list = data; + const Eina_List *l; + Evas_Object *o; + Eina_Bool disable = !e_widget_check_checked_get(obj); + + EINA_LIST_FOREACH(list, l, o) + e_widget_disabled_set(o, disable); +} diff --git a/src/modules/conf_window_manipulation/e_int_config_window_manip.h b/src/modules/conf_window_manipulation/e_int_config_window_manip.h index e9103c8e0..d63178add 100644 --- a/src/modules/conf_window_manipulation/e_int_config_window_manip.h +++ b/src/modules/conf_window_manipulation/e_int_config_window_manip.h @@ -4,7 +4,6 @@ #define E_INT_CONFIG_WINDOW_MANIPULATION_H E_Config_Dialog *e_int_config_window_geometry(E_Container *con, const char *params __UNUSED__); -E_Config_Dialog *e_int_config_window_stacking(E_Container *con, const char *params __UNUSED__); E_Config_Dialog *e_int_config_window_maxpolicy(E_Container *con, const char *params __UNUSED__); E_Config_Dialog *e_int_config_window_process(E_Container *con, const char *params __UNUSED__); diff --git a/src/modules/conf_window_manipulation/e_int_config_window_stacking.c b/src/modules/conf_window_manipulation/e_int_config_window_stacking.c deleted file mode 100644 index 28e60f723..000000000 --- a/src/modules/conf_window_manipulation/e_int_config_window_stacking.c +++ /dev/null @@ -1,187 +0,0 @@ -#include "e.h" - -/* PROTOTYPES - same all the time */ -static void *_create_data(E_Config_Dialog *cfd); -static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static int _advanced_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static int _basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static int _advanced_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); -static Evas_Object *_advanced_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); -static void _cb_disable_check_list(void *data, Evas_Object *obj); - -/* Actual config data we will be playing with whil the dialog is active */ -struct _E_Config_Dialog_Data -{ - /*- BASIC -*/ - int use_auto_raise; - int allow_above_fullscreen; - /*- ADVANCED -*/ - double auto_raise_delay; - int border_raise_on_mouse_action; - int border_raise_on_focus; - Eina_List *autoraise_list; -}; - -/* a nice easy setup function that does the dirty work */ -E_Config_Dialog * -e_int_config_window_stacking(E_Container *con, const char *params __UNUSED__) -{ - E_Config_Dialog *cfd; - E_Config_Dialog_View *v; - - if (e_config_dialog_find("E", "windows/window_stacking_dialog")) - return NULL; - v = E_NEW(E_Config_Dialog_View, 1); - - /* methods */ - v->create_cfdata = _create_data; - v->free_cfdata = _free_data; - v->basic.apply_cfdata = _basic_apply; - v->basic.create_widgets = _basic_create; - v->basic.check_changed = _basic_check_changed; - v->advanced.apply_cfdata = _advanced_apply; - v->advanced.create_widgets = _advanced_create; - v->advanced.check_changed = _advanced_check_changed; - - /* create config diaolg for NULL object/data */ - cfd = e_config_dialog_new(con, _("Window Stacking"), - "E", "windows/window_stacking_dialog", - "preferences-window-stacking", 0, v, NULL); - return cfd; -} - -static void * -_create_data(E_Config_Dialog *cfd __UNUSED__) -{ - E_Config_Dialog_Data *cfdata; - - cfdata = E_NEW(E_Config_Dialog_Data, 1); - if (!cfdata) return NULL; - cfdata->use_auto_raise = e_config->use_auto_raise; - cfdata->allow_above_fullscreen = e_config->allow_above_fullscreen; - cfdata->auto_raise_delay = e_config->auto_raise_delay; - cfdata->border_raise_on_mouse_action = - e_config->border_raise_on_mouse_action; - cfdata->border_raise_on_focus = e_config->border_raise_on_focus; - return cfdata; -} - -static void -_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) -{ - eina_list_free(cfdata->autoraise_list); - E_FREE(cfdata); -} - -static int -_basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) -{ - e_config->use_auto_raise = cfdata->use_auto_raise; - e_config->allow_above_fullscreen = cfdata->allow_above_fullscreen; - e_config_save_queue(); - return 1; -} - -static int -_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) -{ - return ((e_config->use_auto_raise != cfdata->use_auto_raise) || - (e_config->allow_above_fullscreen != cfdata->allow_above_fullscreen)); -} - -static int -_advanced_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) -{ - e_config->use_auto_raise = cfdata->use_auto_raise; - e_config->allow_above_fullscreen = cfdata->allow_above_fullscreen; - e_config->auto_raise_delay = cfdata->auto_raise_delay; - e_config->border_raise_on_mouse_action = cfdata->border_raise_on_mouse_action; - e_config->border_raise_on_focus = cfdata->border_raise_on_focus; - e_config_save_queue(); - return 1; -} - -static int -_advanced_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) -{ - return ((e_config->use_auto_raise != cfdata->use_auto_raise) || - (e_config->allow_above_fullscreen != cfdata->allow_above_fullscreen) || - (e_config->auto_raise_delay != cfdata->auto_raise_delay) || - (e_config->border_raise_on_mouse_action != cfdata->border_raise_on_mouse_action) || - (e_config->border_raise_on_focus != cfdata->border_raise_on_focus)); -} - -static Evas_Object * -_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata) -{ - Evas_Object *o, *ob; - - o = e_widget_list_add(evas, 0, 0); - - ob = e_widget_check_add(evas, _("Raise windows on mouse over"), - &(cfdata->use_auto_raise)); - e_widget_list_object_append(o, ob, 1, 0, 0.5); - - ob = e_widget_check_add(evas, _("Allow windows above fullscreen window"), - &(cfdata->allow_above_fullscreen)); - e_widget_list_object_append(o, ob, 1, 0, 0.5); - - return o; -} - -static Evas_Object * -_advanced_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata) -{ - /* generate the core widget layout for an advanced dialog */ - Evas_Object *o, *ob, *of; - Evas_Object *autoraise_check; - - o = e_widget_list_add(evas, 0, 0); - - of = e_widget_framelist_add(evas, _("Autoraise"), 0); - autoraise_check = e_widget_check_add(evas, _("Raise windows on mouse over"), - &(cfdata->use_auto_raise)); - e_widget_framelist_object_append(of, autoraise_check); - ob = e_widget_label_add(evas, _("Delay before raising:")); - cfdata->autoraise_list = eina_list_append(cfdata->autoraise_list, ob); - e_widget_disabled_set(ob, !cfdata->use_auto_raise); - e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.1f sec"), 0.0, 9.9, 0.1, 0, - &(cfdata->auto_raise_delay), NULL, 100); - cfdata->autoraise_list = eina_list_append(cfdata->autoraise_list, ob); - e_widget_disabled_set(ob, !cfdata->use_auto_raise); - e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(o, of, 1, 0, 0.5); - // handler for enable/disable widget array - e_widget_on_change_hook_set(autoraise_check, - _cb_disable_check_list, cfdata->autoraise_list); - - of = e_widget_framelist_add(evas, _("Raise Window"), 0); - e_widget_framelist_content_align_set(of, 0.0, 0.0); - ob = e_widget_check_add(evas, _("Raise when starting to move or resize"), - &(cfdata->border_raise_on_mouse_action)); - e_widget_framelist_object_append(of, ob); - ob = e_widget_check_add(evas, _("Raise when clicking to focus"), - &(cfdata->border_raise_on_focus)); - e_widget_framelist_object_append(of, ob); - ob = e_widget_check_add(evas, _("Allow windows above fullscreen window"), - &(cfdata->allow_above_fullscreen)); - e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(o, of, 1, 0, 0.5); - - return o; -} - -static void -_cb_disable_check_list(void *data, Evas_Object *obj) -{ - const Eina_List *list = data; - const Eina_List *l; - Evas_Object *o; - Eina_Bool disable = !e_widget_check_checked_get(obj); - - EINA_LIST_FOREACH(list, l, o) - e_widget_disabled_set(o, disable); -} diff --git a/src/modules/conf_window_manipulation/e_mod_main.c b/src/modules/conf_window_manipulation/e_mod_main.c index 5596f9ac3..173e1f8b0 100644 --- a/src/modules/conf_window_manipulation/e_mod_main.c +++ b/src/modules/conf_window_manipulation/e_mod_main.c @@ -18,10 +18,9 @@ e_modapi_init(E_Module *m) e_configure_registry_item_add("windows/window_display", 10, _("Window Display"), NULL, "preferences-system-windows", e_int_config_window_display); e_configure_registry_item_add("windows/window_focus", 20, _("Window Focus"), NULL, "preferences-focus", e_int_config_focus); e_configure_registry_item_add("windows/window_geometry", 30, _("Window Geometry"), NULL, "preferences-window-geometry", e_int_config_window_geometry); - e_configure_registry_item_add("windows/window_stacking", 40, _("Window Stacking"), NULL, "preferences-window-stacking", e_int_config_window_stacking); - e_configure_registry_item_add("windows/window_maxpolicy", 50, _("Window Maximize Policy"), NULL, "preferences-window-maximize", e_int_config_window_maxpolicy); - e_configure_registry_item_add("windows/window_list_menu", 60, _("Window List Menu"), NULL, "preferences-winlist", e_int_config_clientlist); - e_configure_registry_item_add("windows/window_process", 70, _("Window Process Management"), NULL, "preferences-window-process", e_int_config_window_process); + e_configure_registry_item_add("windows/window_maxpolicy", 40, _("Window Maximize Policy"), NULL, "preferences-window-maximize", e_int_config_window_maxpolicy); + e_configure_registry_item_add("windows/window_list_menu", 50, _("Window List Menu"), NULL, "preferences-winlist", e_int_config_clientlist); + e_configure_registry_item_add("windows/window_process", 60, _("Window Process Management"), NULL, "preferences-window-process", e_int_config_window_process); conf_module = m; e_module_delayed_set(m, 1); return m; @@ -34,14 +33,12 @@ e_modapi_shutdown(E_Module *m __UNUSED__) while ((cfd = e_config_dialog_get("E", "windows/window_process"))) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "windows/window_list_menu"))) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "windows/window_maxpolicy_dialog"))) e_object_del(E_OBJECT(cfd)); - while ((cfd = e_config_dialog_get("E", "windows/window_stacking_dialog"))) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "windows/window_geometry"))) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "windows/window_focus"))) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "windows/window_display"))) e_object_del(E_OBJECT(cfd)); e_configure_registry_item_del("windows/window_process"); e_configure_registry_item_del("windows/window_list_menu"); e_configure_registry_item_del("windows/window_maxpolicy"); - e_configure_registry_item_del("windows/window_stacking"); e_configure_registry_item_del("windows/window_geometry"); e_configure_registry_item_del("windows/window_focus"); e_configure_registry_item_del("windows/window_display");