From: Enlightenment S. <no-...@en...> - 2009-12-03 03:46:40
|
Log: Use proper config dialog window class. Fixes issue where E crashes if the wallpaper dialog is open and then the module gets unloaded. Author: devilhorns Date: 2009-12-02 19:46:28 -0800 (Wed, 02 Dec 2009) New Revision: 44154 Modified: trunk/e/src/modules/conf_wallpaper/e_int_config_wallpaper.c trunk/e/src/modules/conf_wallpaper/e_mod_main.c Modified: trunk/e/src/modules/conf_wallpaper/e_int_config_wallpaper.c =================================================================== --- trunk/e/src/modules/conf_wallpaper/e_int_config_wallpaper.c 2009-12-03 03:41:24 UTC (rev 44153) +++ trunk/e/src/modules/conf_wallpaper/e_int_config_wallpaper.c 2009-12-03 03:46:28 UTC (rev 44154) @@ -83,7 +83,7 @@ E_Config_Dialog_View *v; E_Config_Wallpaper *cw; - if (e_config_dialog_find("E", "appearance/wallpaper")) return NULL; + if (e_config_dialog_find("E", "_config_wallpaper_dialog")) return NULL; v = E_NEW(E_Config_Dialog_View, 1); cw = E_NEW(E_Config_Wallpaper, 1); @@ -108,7 +108,7 @@ cw->desk_y = desk_y; cfd = e_config_dialog_new(con, _("Wallpaper Settings"), "E", - "appearance/wallpaper", + "_config_wallpaper_dialog", "preferences-desktop-wallpaper", 0, v, cw); return cfd; } @@ -554,6 +554,7 @@ ow = e_widget_button_add(evas, _("Gradient..."), "preferences-gradient", _cb_gradient, cfdata, NULL); e_widget_table_object_append(ot, ow, 1, 1, 1, 1, 1, 0, 0, 0); + #ifdef HAVE_EXCHANGE if (online) { @@ -684,6 +685,7 @@ ow = e_widget_button_add(evas, _("Gradient..."), "preferences-gradient", _cb_gradient, cfdata, NULL); e_widget_table_object_append(ot, ow, 1, 1, 1, 1, 1, 0, 0, 0); + #ifdef HAVE_EXCHANGE if (online) { Modified: trunk/e/src/modules/conf_wallpaper/e_mod_main.c =================================================================== --- trunk/e/src/modules/conf_wallpaper/e_mod_main.c 2009-12-03 03:41:24 UTC (rev 44153) +++ trunk/e/src/modules/conf_wallpaper/e_mod_main.c 2009-12-03 03:46:28 UTC (rev 44154) @@ -4,13 +4,10 @@ #include "e.h" #include "e_mod_main.h" -/***************************************************************************/ -/**/ /* actual module specifics */ +static void _e_mod_run_cb(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_mod_menu_add(void *data, E_Menu *m); -static void _e_mod_run_cb(void *data, E_Menu *m, E_Menu_Item *mi); -static void _e_mod_menu_add(void *data, E_Menu *m); - static E_Module *conf_module = NULL; static E_Int_Menu_Augmentation *maug = NULL; static E_Fm2_Mime_Handler *import_hdl = NULL; @@ -25,15 +22,23 @@ EAPI void * e_modapi_init(E_Module *m) { - e_configure_registry_category_add("appearance", 10, _("Look"), NULL, "preferences-appearance"); - e_configure_registry_item_add("appearance/wallpaper", 10, _("Wallpaper"), NULL, "preferences-desktop-wallpaper", e_int_config_wallpaper); - e_configure_registry_category_add("internal", -1, _("Internal"), NULL, "enlightenment/internal"); - e_configure_registry_item_add("internal/wallpaper_desk", -1, _("Wallpaper"), NULL, "preferences-system-windows", e_int_config_wallpaper_desk); - maug = e_int_menus_menu_augmentation_add_sorted("config/1", _("Wallpaper"), _e_mod_menu_add, NULL, NULL, NULL); + e_configure_registry_category_add("appearance", 10, _("Look"), NULL, + "preferences-appearance"); + e_configure_registry_item_add("appearance/wallpaper", 10, _("Wallpaper"), NULL, + "preferences-desktop-wallpaper", e_int_config_wallpaper); + e_configure_registry_category_add("internal", -1, _("Internal"), + NULL, "enlightenment/internal"); + e_configure_registry_item_add("internal/wallpaper_desk", -1, _("Wallpaper"), + NULL, "preferences-system-windows", e_int_config_wallpaper_desk); + maug = + e_int_menus_menu_augmentation_add_sorted("config/1", _("Wallpaper"), + _e_mod_menu_add, NULL, NULL, NULL); - import_hdl = e_fm2_mime_handler_new(_("Set As Background"), "preferences-desktop-wallpaper", - e_int_config_wallpaper_handler_set, NULL, - e_int_config_wallpaper_handler_test, NULL); + import_hdl = + e_fm2_mime_handler_new(_("Set As Background"), + "preferences-desktop-wallpaper", + e_int_config_wallpaper_handler_set, NULL, + e_int_config_wallpaper_handler_test, NULL); if (import_hdl) { e_fm2_mime_handler_mime_add(import_hdl, "image/png"); @@ -49,6 +54,7 @@ e_modapi_shutdown(E_Module *m) { E_Config_Dialog *cfd; + /* remove module-supplied menu additions */ if (maug) { |