reopen fileman and dialog windows after restart of e.
authorHannes Janetzek <hannes.janetzek@gmail.com>
Mon, 21 Sep 2009 20:36:35 +0000 (20:36 +0000)
committerHannes Janetzek <hannes.janetzek@gmail.com>
Mon, 21 Sep 2009 20:36:35 +0000 (20:36 +0000)
- modules using e_configure_registry_add must be modified to
  use registry path as window class for this to work
- fileman now uses e_remember to remember position instead of
  handling it separately
- added option to window remember for remembering dialogs and
  fileman windows automatically

SVN revision: 42607

58 files changed:
src/bin/e_config.c
src/bin/e_config_dialog.c
src/bin/e_eap_editor.c
src/bin/e_main.c
src/bin/e_module.c
src/bin/e_module.h
src/bin/e_remember.c
src/bin/e_remember.h
src/modules/conf_applications/e_int_config_apps.c
src/modules/conf_borders/e_int_config_borders.c
src/modules/conf_clientlist/e_int_config_clientlist.c
src/modules/conf_colors/e_int_config_color_classes.c
src/modules/conf_desk/e_int_config_desk.c
src/modules/conf_desklock/e_int_config_desklock.c
src/modules/conf_desks/e_int_config_desks.c
src/modules/conf_dialogs/e_int_config_dialogs.c
src/modules/conf_display/e_int_config_display.c
src/modules/conf_dpms/e_int_config_dpms.c
src/modules/conf_edgebindings/e_int_config_edgebindings.c
src/modules/conf_engine/e_int_config_engine.c
src/modules/conf_exebuf/e_int_config_exebuf.c
src/modules/conf_fonts/e_int_config_fonts.c
src/modules/conf_icon_theme/e_int_config_icon_themes.c
src/modules/conf_imc/e_int_config_imc.c
src/modules/conf_interaction/e_int_config_interaction.c
src/modules/conf_intl/e_int_config_intl.c
src/modules/conf_keybindings/e_int_config_keybindings.c
src/modules/conf_menus/e_int_config_menus.c
src/modules/conf_mime/e_int_config_mime.c
src/modules/conf_mouse/e_int_config_mouse.c
src/modules/conf_mouse_cursor/e_int_config_cursor.c
src/modules/conf_mousebindings/e_int_config_mousebindings.c
src/modules/conf_paths/e_int_config_paths.c
src/modules/conf_performance/e_int_config_performance.c
src/modules/conf_profiles/e_int_config_profiles.c
src/modules/conf_scale/e_int_config_scale.c
src/modules/conf_screensaver/e_int_config_screensaver.c
src/modules/conf_shelves/e_int_config_shelf.c
src/modules/conf_startup/e_int_config_startup.c
src/modules/conf_theme/e_int_config_theme.c
src/modules/conf_transitions/e_int_config_transitions.c
src/modules/conf_wallpaper/e_int_config_wallpaper.c
src/modules/conf_wallpaper2/e_int_config_wallpaper.c
src/modules/conf_window_display/e_int_config_window_display.c
src/modules/conf_window_focus/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_remembers/e_int_config_remembers.c
src/modules/conf_winlist/e_int_config_winlist.c
src/modules/dropshadow/e_mod_config.c
src/modules/everything/e_mod_main.c
src/modules/everything/evry_config.c
src/modules/fileman/e_fwin.c
src/modules/fileman/e_mod_config.c
src/modules/gadman/e_mod_config.c
src/modules/mixer/conf_module.c
src/modules/mixer/e_mod_main.c

index 9e03343..3335feb 100644 (file)
@@ -1046,7 +1046,7 @@ e_config_load(void)
    E_CONFIG_LIMIT(e_config->desk_flip_pan_bg, 0, 1);
    E_CONFIG_LIMIT(e_config->desk_flip_pan_x_axis_factor, 0.0, 1.0);
    E_CONFIG_LIMIT(e_config->desk_flip_pan_y_axis_factor, 0.0, 1.0);
-   E_CONFIG_LIMIT(e_config->remember_internal_windows, 0, 1);
+   E_CONFIG_LIMIT(e_config->remember_internal_windows, 0, 3);
    E_CONFIG_LIMIT(e_config->desk_auto_switch, 0, 1);
 
    E_CONFIG_LIMIT(e_config->dpms_enable, 0, 1);
index 37ff062..374bb5b 100644 (file)
@@ -167,11 +167,12 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type)
 
    pdia = cfd->dia;
    /* FIXME: get name/class form new call and use here */
-   if (type == E_CONFIG_DIALOG_CFDATA_TYPE_BASIC)
-     snprintf(buf, sizeof(buf), "%s...%s", cfd->class, "BASIC");
-   else
-     snprintf(buf, sizeof(buf), "%s...%s", cfd->class, "ADVANCED");
-
+   /* if (type == E_CONFIG_DIALOG_CFDATA_TYPE_BASIC)
+    *   snprintf(buf, sizeof(buf), "%s...%s", cfd->class, "BASIC");
+    * else
+    *   snprintf(buf, sizeof(buf), "%s...%s", cfd->class, "ADVANCED"); */
+   snprintf(buf, sizeof(buf), "_config::%s", cfd->class);
+   
    if (!pdia)  /* creating window for the first time */
      {
        if ((cfd->view->normal_win) || (e_config->cfgdlg_normal_wins))
index 2e813fb..a928eae 100644 (file)
@@ -213,7 +213,7 @@ _e_desktop_edit_view_create(E_Desktop_Edit *editor, E_Container *con)
 
    editor->cfd = 
      e_config_dialog_new(con, _("Desktop Entry Editor"), "E", 
-                        "_desktop_editor_dialog",
+                        "applications/new_application",
                         "preferences-applications", 0, v, editor);
    
    if (!editor->cfd)
index 0dd32de..30b628d 100644 (file)
@@ -818,16 +818,6 @@ main(int argc, char **argv)
      }
    _e_main_shutdown_push(e_exec_shutdown);
 
-   e_init_status_set(_("Setup Remembers"));
-   TS("remember");
-   /* do remember stuff */
-   if (!e_remember_init(after_restart ? E_STARTUP_RESTART: E_STARTUP_START))
-     {
-       e_error_message_show(_("Enlightenment cannot setup remember settings."));
-       _e_main_shutdown(-1);
-     }
-   _e_main_shutdown_push(e_remember_shutdown);
-
    TS("container freeze");
    e_container_all_freeze();
 
@@ -891,6 +881,16 @@ main(int argc, char **argv)
      }
    _e_main_shutdown_push(e_module_shutdown);
 
+   e_init_status_set(_("Setup Remembers"));
+   TS("remember");
+   /* do remember stuff */
+   if (!e_remember_init(after_restart ? E_STARTUP_RESTART: E_STARTUP_START))
+     {
+       e_error_message_show(_("Enlightenment cannot setup remember settings."));
+       _e_main_shutdown(-1);
+     }
+   _e_main_shutdown_push(e_remember_shutdown);
+
    e_init_status_set(_("Setup Color Classes"));
    TS("colorclasses");
    /* setup color_class */
@@ -1084,6 +1084,8 @@ main(int argc, char **argv)
    /* Store current selected desktops */
    _e_main_desk_save();
 
+   e_remember_internal_save();
+   
    /* unroll our stack of shutdown functions with exit code of 0 */
    _e_main_shutdown(0);
 
index a3c98f2..1913a6f 100644 (file)
@@ -24,12 +24,14 @@ static Ecore_Idler *_e_module_idler = NULL;
 static Eina_List *_e_modules_delayed = NULL;
 
 EAPI int E_EVENT_MODULE_UPDATE = 0;
+EAPI int E_EVENT_MODULE_INIT_END = 0;
 
 /* externally accessible functions */
 EAPI int
 e_module_init(void)
 {
    E_EVENT_MODULE_UPDATE = ecore_event_type_new();
+   E_EVENT_MODULE_INIT_END = ecore_event_type_new();
    return 1;
 }
 
@@ -91,6 +93,11 @@ e_module_all_load(void)
             if (m) e_module_enable(m);
          }
      }
+   
+   if (!_e_modules_delayed)
+     {
+       ecore_event_add(E_EVENT_MODULE_INIT_END, NULL, NULL, NULL);
+     }
 }
 
 EAPI E_Module *
@@ -514,16 +521,6 @@ _e_module_cb_dialog_disable(void *data, E_Dialog *dia)
    e_config_save_queue();
 }
 
-static void 
-_e_module_event_update_free(void *data, void *event) 
-{
-   E_Event_Module_Update *ev;
-   
-   if (!(ev = event)) return;
-   E_FREE(ev->name);
-   E_FREE(ev);
-}
-
 static int
 _e_module_cb_idler(void *data)
 {
@@ -539,7 +536,14 @@ _e_module_cb_idler(void *data)
        if (m) e_module_enable(m);
        eina_stringshare_del(name);
      }
-   if (_e_modules_delayed) return 1;
+   if (_e_modules_delayed)
+     {
+       e_util_wakeup();
+       return 1;
+     }
+
+   ecore_event_add(E_EVENT_MODULE_INIT_END, NULL, NULL, NULL);
+
    _e_module_idler = NULL;
    return 0;
 }
@@ -553,3 +557,14 @@ _e_module_sort_priority(const void *d1, const void *d2)
    m2 = d2;
    return (m2->priority - m1->priority);
 }
+
+
+static void 
+_e_module_event_update_free(void *data, void *event) 
+{
+   E_Event_Module_Update *ev;
+   
+   if (!(ev = event)) return;
+   E_FREE(ev->name);
+   E_FREE(ev);
+}
index 6c5c88e..a809477 100644 (file)
@@ -17,6 +17,7 @@ typedef struct _E_Event_Module_Update E_Event_Module_Update;
 #define E_MODULE_TYPE 0xE0b0100b
 
 extern EAPI int E_EVENT_MODULE_UPDATE;
+extern EAPI int E_EVENT_MODULE_INIT_END;
 
 struct _E_Event_Module_Update
 {
index 39e856c..e5d4226 100644 (file)
@@ -6,16 +6,32 @@
 #define REMEMBER_HIERARCHY 1
 #define REMEMBER_SIMPLE 0
 
+typedef struct _E_Remember_List E_Remember_List;
+
+
+struct _E_Remember_List
+{
+  Eina_List *list;
+};
+
 /* local subsystem functions */
 static void _e_remember_free(E_Remember *rem);
+static void _e_remember_update(E_Border *bd, E_Remember *rem);
 static E_Remember  *_e_remember_find(E_Border *bd, int check_usable);
 static void _e_remember_cb_hook_pre_post_fetch(void *data, void *bd);
 static void _e_remember_cb_hook_eval_post_new_border(void *data, void *bd);
+static void _e_remember_init_edd(void);
+static int _e_remember_restore_cb(void *data, int type, void *event);
+
+/* local subsystem globals */
 static Eina_List *hooks = NULL;
+static E_Config_DD *e_remember_edd = NULL;
+static E_Config_DD *e_remember_list_edd = NULL;
+static E_Remember_List *remembers = NULL;
+static Eina_List *handlers = NULL;
 
-/* FIXME: match netwm window type */
+/* static Eina_List *e_remember_restart_list = NULL; */
 
-/* local subsystem globals */
 
 /* externally accessible functions */
 EAPI int
@@ -41,6 +57,16 @@ e_remember_init(E_Startup_Mode mode)
                         _e_remember_cb_hook_eval_post_new_border, NULL);
    if (h) hooks = eina_list_append(hooks, h);
 
+   _e_remember_init_edd();
+   remembers = e_config_domain_load("e_remember_restart", e_remember_list_edd);
+
+   if (remembers)
+     {
+       handlers = eina_list_append
+         (handlers, ecore_event_handler_add
+          (E_EVENT_MODULE_INIT_END, _e_remember_restore_cb, NULL)); 
+     }
+   
    return 1;
 }
 
@@ -48,13 +74,118 @@ EAPI int
 e_remember_shutdown(void)
 {
    E_Border_Hook *h;
-
+   Ecore_Event_Handler *hh;
+   
    EINA_LIST_FREE(hooks, h)
      e_border_hook_del(h);
 
+   E_CONFIG_DD_FREE(e_remember_edd);
+   E_CONFIG_DD_FREE(e_remember_list_edd);
+
+   EINA_LIST_FREE(handlers, hh)
+     ecore_event_handler_del(hh);
+   
    return 1;
 }
 
+EAPI void
+e_remember_internal_save(void)
+{
+   Eina_List *l;
+   E_Border *bd;
+   E_Remember *rem;
+
+   //printf("internal save %d\n", restart);
+   if (!remembers)
+     remembers = E_NEW(E_Remember_List, 1);
+   else
+     {
+       EINA_LIST_FREE(remembers->list, rem)
+         _e_remember_free(rem);
+     }
+   
+   EINA_LIST_FOREACH(e_border_client_list(), l, bd)
+     {
+       if (!bd->internal) continue;
+
+       rem = E_NEW(E_Remember, 1);
+       if (!rem) break;
+
+       e_remember_default_match_set(rem, bd);
+       rem->apply = (E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE |
+                     E_REMEMBER_APPLY_BORDER | E_REMEMBER_APPLY_LAYER |
+                     E_REMEMBER_APPLY_SHADE | E_REMEMBER_APPLY_ZONE |
+                     E_REMEMBER_APPLY_DESKTOP | E_REMEMBER_APPLY_LOCKS |
+                     E_REMEMBER_APPLY_SKIP_WINLIST |     
+                     E_REMEMBER_APPLY_SKIP_PAGER |
+                     E_REMEMBER_APPLY_SKIP_TASKBAR);
+       _e_remember_update(bd, rem);
+
+       remembers->list = eina_list_append(remembers->list, rem);
+     }
+
+   e_config_domain_save("e_remember_restart", e_remember_list_edd, remembers);
+}
+
+static int
+_e_remember_restore_cb(void *data, int type, void *event)
+{
+   E_Remember *rem;
+   Eina_List *l;
+   E_Action *act_fm, *act;
+   const char *path;
+   E_Container *con;
+
+   act_fm = e_action_find("fileman"); 
+
+   con = e_container_current_get(e_manager_current_get());
+   
+   EINA_LIST_FOREACH(remembers->list, l, rem)
+     {
+       if (!rem->class) continue;
+       //printf("internal restore %s\n", rem->class);
+
+       if (!strncmp(rem->class, "e_fwin::", 8))
+         {
+            //printf("internal restore fm %p\n", (void *) act_fm);
+            if (!act_fm)
+              continue;
+            if (!strlen(rem->class) > 8)
+              continue;
+
+            path = rem->class + 8;
+
+            act_fm->func.go(NULL, path);
+         }
+       else if (!strncmp(rem->class, "_config::", 9))
+         {
+            /* TODO parse _config::params::path */
+            path = rem->class + 9;
+            //printf("internal restore config %s\n", path);
+            if (e_configure_registry_exists(path))
+              {
+                 e_configure_registry_call(path, con, NULL);
+              }
+         }
+       else if (!strcmp(rem->class, "_configure"))
+         {
+            /* TODO this is just for settings panel. it could also
+               use e_configure_registry_item_add */
+            /* ..or make a general path for window that are started
+               by actions */
+
+            act = e_action_find("configuration");
+            if (act)
+              act->func.go(NULL, NULL);
+         }
+     }
+
+   if (handlers) eina_list_free(handlers);
+   handlers = NULL;
+   
+   return 0;
+}
+
 EAPI E_Remember *
 e_remember_new(void)
 {
@@ -213,16 +344,16 @@ e_remember_default_match_set(E_Remember *rem, E_Border *bd)
 EAPI void
 e_remember_update(E_Border *bd)
 {
-   E_Remember *rem;
-   
    if (bd->new_client) return;
    if (!bd->remember) return;
    if (bd->remember->keep_settings) return;
-   
-   rem = bd->remember;
-   
-   /* e_remember_match_update(rem); */
+   _e_remember_update(bd, bd->remember);
+   e_config_save_queue();   
+}
 
+static void
+_e_remember_update(E_Border *bd, E_Remember *rem)
+{
    if (rem->apply & E_REMEMBER_APPLY_POS ||
        rem->apply & E_REMEMBER_APPLY_SIZE)
      {
@@ -304,8 +435,6 @@ e_remember_update(E_Border *bd)
      e_desk_xy_get(bd->desk, &rem->prop.desk_x, &rem->prop.desk_y);
    if (rem->apply & E_REMEMBER_APPLY_FULLSCREEN)
      rem->prop.fullscreen = bd->fullscreen;   
-
-   e_config_save_queue();
 }
 
 /* local subsystem functions */
@@ -424,11 +553,50 @@ _e_remember_free(E_Remember *rem)
 }
 
 static void
+_e_remember_cb_hook_eval_post_new_border(void *data, void *border)
+{
+   E_Border *bd = border;
+
+   if (!bd->new_client) return;
+
+   if ((bd->internal) && (!bd->remember) &&
+       (e_config->remember_internal_windows) &&
+       (!bd->internal_no_remember) &&
+       (bd->client.icccm.class && bd->client.icccm.class[0]))
+     {
+       E_Remember *rem;
+       
+       if (!strncmp(bd->client.icccm.class, "e_fwin", 6))
+         {
+            if (!(e_config->remember_internal_windows & E_REMEMBER_INTERNAL_FM_WINS))
+              return;
+         }
+       else 
+         {
+            if (!(e_config->remember_internal_windows & E_REMEMBER_INTERNAL_DIALOGS))
+              return;
+         }
+
+       rem = e_remember_new();
+       if (!rem) return;
+
+       e_remember_default_match_set(rem, bd);
+       
+       rem->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | E_REMEMBER_APPLY_BORDER;
+
+       e_remember_use(rem);
+       e_remember_update(bd);
+       bd->remember = rem;
+     }
+}
+
+static void
 _e_remember_cb_hook_pre_post_fetch(void *data, void *border)
 {
    E_Border *bd = border;
    E_Remember *rem = NULL;
-
+   int temporary = 0;
+   
    if (!bd->new_client) return;
 
    if (!bd->remember)
@@ -440,256 +608,326 @@ _e_remember_cb_hook_pre_post_fetch(void *data, void *border)
             e_remember_use(rem);
          }
      }
-   if (bd->remember)
+   
+   if (bd->internal && remembers && bd->client.icccm.class)
      {
-       rem = bd->remember;
-
-       if (rem->apply & E_REMEMBER_APPLY_ZONE)
+       Eina_List *l;
+       EINA_LIST_FOREACH(remembers->list, l, rem)
          {
-            E_Zone *zone;
-
-            zone = e_container_zone_number_get(bd->zone->container, rem->prop.zone);
-            if (zone)
-              e_border_zone_set(bd, zone);
+            if (!strcmp(rem->class, bd->client.icccm.class))
+                break;
          }
-       if (rem->apply & E_REMEMBER_APPLY_DESKTOP)
+       if (rem)
          {
-            E_Desk *desk;
+            temporary = 1;
+            remembers->list = eina_list_remove(remembers->list, rem);
+         }
+       else rem = bd->remember;
+     }
+   
+   if (!rem)
+     return;
 
-            desk = e_desk_at_xy_get(bd->zone, rem->prop.desk_x, rem->prop.desk_y);
-            if (desk)
-              {
-                 e_border_desk_set(bd, desk);
-                 if (e_config->desk_auto_switch)
-                   e_desk_show(desk);
-              }
+   if (rem->apply & E_REMEMBER_APPLY_ZONE)
+     {
+       E_Zone *zone;
+
+       zone = e_container_zone_number_get(bd->zone->container, rem->prop.zone);
+       if (zone)
+         e_border_zone_set(bd, zone);
+     }
+   if (rem->apply & E_REMEMBER_APPLY_DESKTOP)
+     {
+       E_Desk *desk;
+
+       desk = e_desk_at_xy_get(bd->zone, rem->prop.desk_x, rem->prop.desk_y);
+       if (desk)
+         {
+            e_border_desk_set(bd, desk);
+            if (e_config->desk_auto_switch)
+              e_desk_show(desk);
          }
-       if (rem->apply & E_REMEMBER_APPLY_SIZE)
+     }
+   if (rem->apply & E_REMEMBER_APPLY_SIZE)
+     {
+       bd->client.w = rem->prop.w;
+       bd->client.h = rem->prop.h;
+       /* we can trust internal windows */
+       if (bd->internal)
          {
-            bd->client.w = rem->prop.w;
-            bd->client.h = rem->prop.h;
-            /* we can trust internal windows */
-            if (bd->internal)
+            if (bd->zone->w != rem->prop.res_x)
               {
-                 if (bd->zone->w != rem->prop.res_x)
-                   {
-                      if (bd->client.w > (bd->zone->w - 64))
-                        bd->client.w = bd->zone->w - 64;
-                   }
-                 if (bd->zone->h != rem->prop.res_y)
-                   {
-                      if (bd->client.h > (bd->zone->h - 64))
-                        bd->client.h = bd->zone->h - 64;
-                   }
-                 if (bd->client.icccm.min_w > bd->client.w)
-                   bd->client.w = bd->client.icccm.min_w;
-                 if (bd->client.icccm.max_w < bd->client.w)
-                   bd->client.w = bd->client.icccm.max_w;
-                 if (bd->client.icccm.min_h > bd->client.h)
-                   bd->client.h = bd->client.icccm.min_h;
-                 if (bd->client.icccm.max_h < bd->client.h)
-                   bd->client.h = bd->client.icccm.max_h;
+                 if (bd->client.w > (bd->zone->w - 64))
+                   bd->client.w = bd->zone->w - 64;
               }
-            bd->w = bd->client.w + bd->client_inset.l + bd->client_inset.r;
-            bd->h = bd->client.h + bd->client_inset.t + bd->client_inset.b;
-            bd->changes.size = 1;
-            bd->changes.shape = 1;
+            if (bd->zone->h != rem->prop.res_y)
+              {
+                 if (bd->client.h > (bd->zone->h - 64))
+                   bd->client.h = bd->zone->h - 64;
+              }
+            if (bd->client.icccm.min_w > bd->client.w)
+              bd->client.w = bd->client.icccm.min_w;
+            if (bd->client.icccm.max_w < bd->client.w)
+              bd->client.w = bd->client.icccm.max_w;
+            if (bd->client.icccm.min_h > bd->client.h)
+              bd->client.h = bd->client.icccm.min_h;
+            if (bd->client.icccm.max_h < bd->client.h)
+              bd->client.h = bd->client.icccm.max_h;
          }
-       if ((rem->apply & E_REMEMBER_APPLY_POS) && (!bd->re_manage))
+       bd->w = bd->client.w + bd->client_inset.l + bd->client_inset.r;
+       bd->h = bd->client.h + bd->client_inset.t + bd->client_inset.b;
+       bd->changes.size = 1;
+       bd->changes.shape = 1;
+     }
+   if ((rem->apply & E_REMEMBER_APPLY_POS) && (!bd->re_manage))
+     {
+       bd->x = rem->prop.pos_x;
+       bd->y = rem->prop.pos_y;
+       if (bd->zone->w != rem->prop.res_x)
          {
-            bd->x = rem->prop.pos_x;
-            bd->y = rem->prop.pos_y;
-            if (bd->zone->w != rem->prop.res_x)
+            int px;
+
+            px = bd->x + (bd->w / 2);
+            if (px < ((rem->prop.res_x * 1) / 3))
               {
-                 int px;
-
-                 px = bd->x + (bd->w / 2);
-                 if (px < ((rem->prop.res_x * 1) / 3))
-                   {
-                      if (bd->zone->w >= (rem->prop.res_x / 3))
-                        bd->x = rem->prop.pos_x;
-                      else
-                        bd->x = ((rem->prop.pos_x - 0) * bd->zone->w) /
-                          (rem->prop.res_x / 3);
-                   }
-                 else if (px < ((rem->prop.res_x * 2) / 3))
-                   {
-                      if (bd->zone->w >= (rem->prop.res_x / 3))
-                        bd->x = (bd->zone->w / 2) +
-                          (px - (rem->prop.res_x / 2)) -
-                          (bd->w / 2);
-                      else
-                        bd->x = (bd->zone->w / 2) +
-                          (((px - (rem->prop.res_x / 2)) * bd->zone->w) /
-                           (rem->prop.res_x / 3)) -
-                          (bd->w / 2);
-                   }
+                 if (bd->zone->w >= (rem->prop.res_x / 3))
+                   bd->x = rem->prop.pos_x;
                  else
-                   {
-                      if (bd->zone->w >= (rem->prop.res_x / 3))
-                        bd->x = bd->zone->w +
-                          rem->prop.pos_x - rem->prop.res_x +
-                          (rem->prop.w - bd->client.w);
-                      else
-                        bd->x = bd->zone->w +
-                          (((rem->prop.pos_x - rem->prop.res_x) * bd->zone->w) /
-                           (rem->prop.res_x / 3)) +
-                          (rem->prop.w - bd->client.w);
-                   }
-                 if ((rem->prop.pos_x >= 0) && (bd->x < 0))
-                   bd->x = 0;
-                 else if (((rem->prop.pos_x + rem->prop.w) < rem->prop.res_x) &&
-                          ((bd->x + bd->w) > bd->zone->w))
-                   bd->x = bd->zone->w - bd->w;
+                   bd->x = ((rem->prop.pos_x - 0) * bd->zone->w) /
+                     (rem->prop.res_x / 3);
               }
-            if (bd->zone->h != rem->prop.res_y)
+            else if (px < ((rem->prop.res_x * 2) / 3))
               {
-                 int py;
-
-                 py = bd->y + (bd->h / 2);
-                 if (py < ((rem->prop.res_y * 1) / 3))
-                   {
-                      if (bd->zone->h >= (rem->prop.res_y / 3))
-                        bd->y = rem->prop.pos_y;
-                      else
-                        bd->y = ((rem->prop.pos_y - 0) * bd->zone->h) /
-                          (rem->prop.res_y / 3);
-                   }
-                 else if (py < ((rem->prop.res_y * 2) / 3))
-                   {
-                      if (bd->zone->h >= (rem->prop.res_y / 3))
-                        bd->y = (bd->zone->h / 2) +
-                          (py - (rem->prop.res_y / 2)) -
-                          (bd->h / 2);
-                      else
-                        bd->y = (bd->zone->h / 2) +
-                          (((py - (rem->prop.res_y / 2)) * bd->zone->h) /
-                           (rem->prop.res_y / 3)) -
-                          (bd->h / 2);
-                   }
+                 if (bd->zone->w >= (rem->prop.res_x / 3))
+                   bd->x = (bd->zone->w / 2) +
+                     (px - (rem->prop.res_x / 2)) -
+                     (bd->w / 2);
                  else
-                   {
-                      if (bd->zone->h >= (rem->prop.res_y / 3))
-                        bd->y = bd->zone->h +
-                          rem->prop.pos_y - rem->prop.res_y +
-                          (rem->prop.h - bd->client.h);
-                      else
-                        bd->y = bd->zone->h +
-                          (((rem->prop.pos_y - rem->prop.res_y) * bd->zone->h) /
-                           (rem->prop.res_y / 3)) +
-                          (rem->prop.h - bd->client.h);
-                   }
-                 if ((rem->prop.pos_y >= 0) && (bd->y < 0))
-                   bd->y = 0;
-                 else if (((rem->prop.pos_y + rem->prop.h) < rem->prop.res_y) &&
-                          ((bd->y + bd->h) > bd->zone->h))
-                   bd->y = bd->zone->h - bd->h;
+                   bd->x = (bd->zone->w / 2) +
+                     (((px - (rem->prop.res_x / 2)) * bd->zone->w) /
+                      (rem->prop.res_x / 3)) -
+                     (bd->w / 2);
               }
-            //           if (bd->zone->w != rem->prop.res_x)
-            //             bd->x = (rem->prop.pos_x * bd->zone->w) / rem->prop.res_x;
-            //           if (bd->zone->h != rem->prop.res_y)
-            //             bd->y = (rem->prop.pos_y * bd->zone->h) / rem->prop.res_y;
-            bd->x += bd->zone->x;
-            bd->y += bd->zone->y;
-            bd->placed = 1;
-            bd->changes.pos = 1;
-         }
-       if (rem->apply & E_REMEMBER_APPLY_LAYER)
-         {
-            bd->layer = rem->prop.layer;
-            if (bd->layer == 100)
-              e_hints_window_stacking_set(bd, E_STACKING_NONE);
-            else if (bd->layer == 150)
-              e_hints_window_stacking_set(bd, E_STACKING_ABOVE);
-            e_container_border_raise(bd);
-         }
-       if (rem->apply & E_REMEMBER_APPLY_BORDER)
-         {
-            if (rem->prop.border)
+            else
               {
-                 if (bd->bordername) eina_stringshare_del(bd->bordername);
-                 if (rem->prop.border) bd->bordername = eina_stringshare_add(rem->prop.border);
-                 else bd->bordername = NULL;
-                 bd->client.border.changed = 1;
+                 if (bd->zone->w >= (rem->prop.res_x / 3))
+                   bd->x = bd->zone->w +
+                     rem->prop.pos_x - rem->prop.res_x +
+                     (rem->prop.w - bd->client.w);
+                 else
+                   bd->x = bd->zone->w +
+                     (((rem->prop.pos_x - rem->prop.res_x) * bd->zone->w) /
+                      (rem->prop.res_x / 3)) +
+                     (rem->prop.w - bd->client.w);
               }
+            if ((rem->prop.pos_x >= 0) && (bd->x < 0))
+              bd->x = 0;
+            else if (((rem->prop.pos_x + rem->prop.w) < rem->prop.res_x) &&
+                     ((bd->x + bd->w) > bd->zone->w))
+              bd->x = bd->zone->w - bd->w;
          }
-       if (rem->apply & E_REMEMBER_APPLY_FULLSCREEN)
-         {
-            if (rem->prop.fullscreen)
-              e_border_fullscreen(bd, e_config->fullscreen_policy);
-         }
-       if (rem->apply & E_REMEMBER_APPLY_STICKY)
+       if (bd->zone->h != rem->prop.res_y)
          {
-            if (rem->prop.sticky) e_border_stick(bd);
-         }
-       if (rem->apply & E_REMEMBER_APPLY_SHADE)
-         {
-            if (rem->prop.shaded >= 100)
-              e_border_shade(bd, rem->prop.shaded - 100);
-            else if (rem->prop.shaded >= 50)
-              e_border_unshade(bd, rem->prop.shaded - 50);
+            int py;
+
+            py = bd->y + (bd->h / 2);
+            if (py < ((rem->prop.res_y * 1) / 3))
+              {
+                 if (bd->zone->h >= (rem->prop.res_y / 3))
+                   bd->y = rem->prop.pos_y;
+                 else
+                   bd->y = ((rem->prop.pos_y - 0) * bd->zone->h) /
+                     (rem->prop.res_y / 3);
+              }
+            else if (py < ((rem->prop.res_y * 2) / 3))
+              {
+                 if (bd->zone->h >= (rem->prop.res_y / 3))
+                   bd->y = (bd->zone->h / 2) +
+                     (py - (rem->prop.res_y / 2)) -
+                     (bd->h / 2);
+                 else
+                   bd->y = (bd->zone->h / 2) +
+                     (((py - (rem->prop.res_y / 2)) * bd->zone->h) /
+                      (rem->prop.res_y / 3)) -
+                     (bd->h / 2);
+              }
+            else
+              {
+                 if (bd->zone->h >= (rem->prop.res_y / 3))
+                   bd->y = bd->zone->h +
+                     rem->prop.pos_y - rem->prop.res_y +
+                     (rem->prop.h - bd->client.h);
+                 else
+                   bd->y = bd->zone->h +
+                     (((rem->prop.pos_y - rem->prop.res_y) * bd->zone->h) /
+                      (rem->prop.res_y / 3)) +
+                     (rem->prop.h - bd->client.h);
+              }
+            if ((rem->prop.pos_y >= 0) && (bd->y < 0))
+              bd->y = 0;
+            else if (((rem->prop.pos_y + rem->prop.h) < rem->prop.res_y) &&
+                     ((bd->y + bd->h) > bd->zone->h))
+              bd->y = bd->zone->h - bd->h;
          }
-       if (rem->apply & E_REMEMBER_APPLY_LOCKS)
+       //                if (bd->zone->w != rem->prop.res_x)
+       //                  bd->x = (rem->prop.pos_x * bd->zone->w) / rem->prop.res_x;
+       //                if (bd->zone->h != rem->prop.res_y)
+       //                  bd->y = (rem->prop.pos_y * bd->zone->h) / rem->prop.res_y;
+       bd->x += bd->zone->x;
+       bd->y += bd->zone->y;
+       bd->placed = 1;
+       bd->changes.pos = 1;
+     }
+   if (rem->apply & E_REMEMBER_APPLY_LAYER)
+     {
+       bd->layer = rem->prop.layer;
+       if (bd->layer == 100)
+         e_hints_window_stacking_set(bd, E_STACKING_NONE);
+       else if (bd->layer == 150)
+         e_hints_window_stacking_set(bd, E_STACKING_ABOVE);
+       e_container_border_raise(bd);
+     }
+   if (rem->apply & E_REMEMBER_APPLY_BORDER)
+     {
+       if (rem->prop.border)
          {
-            bd->lock_user_location = rem->prop.lock_user_location;
-            bd->lock_client_location = rem->prop.lock_client_location;
-            bd->lock_user_size = rem->prop.lock_user_size;
-            bd->lock_client_size = rem->prop.lock_client_size;
-            bd->lock_user_stacking = rem->prop.lock_user_stacking;
-            bd->lock_client_stacking = rem->prop.lock_client_stacking;
-            bd->lock_user_iconify = rem->prop.lock_user_iconify;
-            bd->lock_client_iconify = rem->prop.lock_client_iconify;
-            bd->lock_user_desk = rem->prop.lock_user_desk;
-            bd->lock_client_desk = rem->prop.lock_client_desk;
-            bd->lock_user_sticky = rem->prop.lock_user_sticky;
-            bd->lock_client_sticky = rem->prop.lock_client_sticky;
-            bd->lock_user_shade = rem->prop.lock_user_shade;
-            bd->lock_client_shade = rem->prop.lock_client_shade;
-            bd->lock_user_maximize = rem->prop.lock_user_maximize;
-            bd->lock_client_maximize = rem->prop.lock_client_maximize;
-            bd->lock_user_fullscreen = rem->prop.lock_user_fullscreen;
-            bd->lock_client_fullscreen = rem->prop.lock_client_fullscreen;
-            bd->lock_border = rem->prop.lock_border;
-            bd->lock_close = rem->prop.lock_close;
-            bd->lock_focus_in = rem->prop.lock_focus_in;
-            bd->lock_focus_out = rem->prop.lock_focus_out;
-            bd->lock_life = rem->prop.lock_life;
+            if (bd->bordername) eina_stringshare_del(bd->bordername);
+            if (rem->prop.border) bd->bordername = eina_stringshare_add(rem->prop.border);
+            else bd->bordername = NULL;
+            bd->client.border.changed = 1;
          }
-       if (rem->apply & E_REMEMBER_APPLY_SKIP_WINLIST)
-         bd->user_skip_winlist = rem->prop.skip_winlist;
-       if (rem->apply & E_REMEMBER_APPLY_SKIP_PAGER)
-         bd->client.netwm.state.skip_pager = rem->prop.skip_pager;
-       if (rem->apply & E_REMEMBER_APPLY_SKIP_TASKBAR)
-         bd->client.netwm.state.skip_taskbar = rem->prop.skip_taskbar;
-       if (rem->apply & E_REMEMBER_APPLY_ICON_PREF)
-         bd->icon_preference = rem->prop.icon_preference;
-       if (rem->apply & E_REMEMBER_SET_FOCUS_ON_START)
-         bd->want_focus = 1;
      }
+   if (rem->apply & E_REMEMBER_APPLY_FULLSCREEN)
+     {
+       if (rem->prop.fullscreen)
+         e_border_fullscreen(bd, e_config->fullscreen_policy);
+     }
+   if (rem->apply & E_REMEMBER_APPLY_STICKY)
+     {
+       if (rem->prop.sticky) e_border_stick(bd);
+     }
+   if (rem->apply & E_REMEMBER_APPLY_SHADE)
+     {
+       if (rem->prop.shaded >= 100)
+         e_border_shade(bd, rem->prop.shaded - 100);
+       else if (rem->prop.shaded >= 50)
+         e_border_unshade(bd, rem->prop.shaded - 50);
+     }
+   if (rem->apply & E_REMEMBER_APPLY_LOCKS)
+     {
+       bd->lock_user_location = rem->prop.lock_user_location;
+       bd->lock_client_location = rem->prop.lock_client_location;
+       bd->lock_user_size = rem->prop.lock_user_size;
+       bd->lock_client_size = rem->prop.lock_client_size;
+       bd->lock_user_stacking = rem->prop.lock_user_stacking;
+       bd->lock_client_stacking = rem->prop.lock_client_stacking;
+       bd->lock_user_iconify = rem->prop.lock_user_iconify;
+       bd->lock_client_iconify = rem->prop.lock_client_iconify;
+       bd->lock_user_desk = rem->prop.lock_user_desk;
+       bd->lock_client_desk = rem->prop.lock_client_desk;
+       bd->lock_user_sticky = rem->prop.lock_user_sticky;
+       bd->lock_client_sticky = rem->prop.lock_client_sticky;
+       bd->lock_user_shade = rem->prop.lock_user_shade;
+       bd->lock_client_shade = rem->prop.lock_client_shade;
+       bd->lock_user_maximize = rem->prop.lock_user_maximize;
+       bd->lock_client_maximize = rem->prop.lock_client_maximize;
+       bd->lock_user_fullscreen = rem->prop.lock_user_fullscreen;
+       bd->lock_client_fullscreen = rem->prop.lock_client_fullscreen;
+       bd->lock_border = rem->prop.lock_border;
+       bd->lock_close = rem->prop.lock_close;
+       bd->lock_focus_in = rem->prop.lock_focus_in;
+       bd->lock_focus_out = rem->prop.lock_focus_out;
+       bd->lock_life = rem->prop.lock_life;
+     }
+   if (rem->apply & E_REMEMBER_APPLY_SKIP_WINLIST)
+     bd->user_skip_winlist = rem->prop.skip_winlist;
+   if (rem->apply & E_REMEMBER_APPLY_SKIP_PAGER)
+     bd->client.netwm.state.skip_pager = rem->prop.skip_pager;
+   if (rem->apply & E_REMEMBER_APPLY_SKIP_TASKBAR)
+     bd->client.netwm.state.skip_taskbar = rem->prop.skip_taskbar;
+   if (rem->apply & E_REMEMBER_APPLY_ICON_PREF)
+     bd->icon_preference = rem->prop.icon_preference;
+   if (rem->apply & E_REMEMBER_SET_FOCUS_ON_START)
+     bd->want_focus = 1;
+
+   if (temporary)
+     _e_remember_free(rem);
 }
 
 
 static void
-_e_remember_cb_hook_eval_post_new_border(void *data, void *border)
+_e_remember_init_edd(void)
 {
-   E_Border *bd = border;
-
-   if (!bd->new_client) return;
-
-   if ((bd->internal) && (!bd->remember) &&
-       (e_config->remember_internal_windows) &&
-       (!bd->internal_no_remember))
-     {
-       E_Remember *rem;
-
-       rem = e_remember_new();
-       if (!rem) return;
-
-       e_remember_default_match_set(rem, bd);
-       
-       rem->apply = E_REMEMBER_APPLY_POS | E_REMEMBER_APPLY_SIZE | E_REMEMBER_APPLY_BORDER;
-       e_remember_use(rem);
-       e_remember_update(bd);
-       bd->remember = rem;
-     }
+   e_remember_edd = E_CONFIG_DD_NEW("E_Remember", E_Remember);
+#undef T
+#undef D
+#define T E_Remember
+#define D e_remember_edd
+   E_CONFIG_VAL(D, T, match, INT);
+   E_CONFIG_VAL(D, T, apply_first_only, UCHAR);
+   E_CONFIG_VAL(D, T, keep_settings, UCHAR);
+   E_CONFIG_VAL(D, T, name, STR);
+   E_CONFIG_VAL(D, T, class, STR);
+   E_CONFIG_VAL(D, T, title, STR);
+   E_CONFIG_VAL(D, T, role, STR);
+   E_CONFIG_VAL(D, T, type, INT);
+   E_CONFIG_VAL(D, T, transient, UCHAR);
+   E_CONFIG_VAL(D, T, apply, INT);
+   E_CONFIG_VAL(D, T, max_score, INT);
+   E_CONFIG_VAL(D, T, prop.pos_x, INT);
+   E_CONFIG_VAL(D, T, prop.pos_y, INT);
+   E_CONFIG_VAL(D, T, prop.res_x, INT);
+   E_CONFIG_VAL(D, T, prop.res_y, INT);
+   E_CONFIG_VAL(D, T, prop.pos_w, INT);
+   E_CONFIG_VAL(D, T, prop.pos_h, INT);
+   E_CONFIG_VAL(D, T, prop.w, INT);
+   E_CONFIG_VAL(D, T, prop.h, INT);
+   E_CONFIG_VAL(D, T, prop.layer, INT);
+   E_CONFIG_VAL(D, T, prop.lock_user_location, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_location, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_size, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_size, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_stacking, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_stacking, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_iconify, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_iconify, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_desk, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_desk, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_sticky, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_sticky, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_shade, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_shade, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_maximize, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_maximize, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_user_fullscreen, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_client_fullscreen, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_border, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_close, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_focus_in, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_focus_out, UCHAR);
+   E_CONFIG_VAL(D, T, prop.lock_life, UCHAR);
+   E_CONFIG_VAL(D, T, prop.border, STR);
+   E_CONFIG_VAL(D, T, prop.sticky, UCHAR);
+   E_CONFIG_VAL(D, T, prop.shaded, UCHAR);
+   E_CONFIG_VAL(D, T, prop.skip_winlist, UCHAR);
+   E_CONFIG_VAL(D, T, prop.skip_pager, UCHAR);
+   E_CONFIG_VAL(D, T, prop.skip_taskbar, UCHAR);
+   E_CONFIG_VAL(D, T, prop.fullscreen, UCHAR);
+   E_CONFIG_VAL(D, T, prop.desk_x, INT);
+   E_CONFIG_VAL(D, T, prop.desk_y, INT);
+   E_CONFIG_VAL(D, T, prop.zone, INT);
+   E_CONFIG_VAL(D, T, prop.head, INT);
+   E_CONFIG_VAL(D, T, prop.command, STR);
+   E_CONFIG_VAL(D, T, prop.icon_preference, UCHAR);
+   E_CONFIG_VAL(D, T, prop.desktop_file, STR);
+#undef T
+#undef D
+   e_remember_list_edd = E_CONFIG_DD_NEW("E_Remember_List", E_Remember_List);
+#undef T
+#undef D
+#define T E_Remember_List
+#define D e_remember_list_edd
+   E_CONFIG_LIST(D, T, list, e_remember_edd);
+#undef T
+#undef D
 }
index fa8ea77..12d8de4 100644 (file)
@@ -29,13 +29,15 @@ typedef struct _E_Remember E_Remember;
 #define E_REMEMBER_SET_FOCUS_ON_START (1 << 14)
 #define E_REMEMBER_APPLY_FULLSCREEN (1 << 15)
 
+#define E_REMEMBER_INTERNAL_DIALOGS   (1 << 0)
+#define E_REMEMBER_INTERNAL_FM_WINS   (1 << 1)
+
 #else
 #ifndef E_REMEMBER_H
 #define E_REMEMBER_H
 
 struct _E_Remember
 {
-   unsigned char  delete_me;
    int            match;
    unsigned char  apply_first_only;
    unsigned char  keep_settings;
@@ -110,6 +112,6 @@ EAPI E_Remember  *e_remember_find_usable(E_Border *bd);
 EAPI void         e_remember_match_update(E_Remember *rem);
 EAPI void         e_remember_update(E_Border *bd);
 EAPI int         e_remember_default_match_set(E_Remember *rem, E_Border *bd);
-    
+EAPI void         e_remember_internal_save(void);
 #endif
 #endif
index 83ec4f0..b4c1ea4 100644 (file)
@@ -48,7 +48,7 @@ e_int_config_apps_favs(E_Container *con, const char *params __UNUSED__)
    e_user_dir_concat_static(buf, "applications/menu/favorite.menu");
    data = E_NEW(E_Config_Data, 1);
    data->title = eina_stringshare_add(_("Favorites Menu"));
-   data->dialog = eina_stringshare_add("_config_apps_favs_dialog");
+   data->dialog = eina_stringshare_add("menus/favorites_menu");
    data->icon = eina_stringshare_add("user-bookmarks");
    data->filename = eina_stringshare_add(buf);
 
@@ -102,7 +102,7 @@ e_int_config_apps_ibar(E_Container *con, const char *params __UNUSED__)
    e_user_dir_concat_static(buf, "applications/bar/default/.order");
    data = E_NEW(E_Config_Data, 1);
    data->title = eina_stringshare_add(_("IBar Applications"));
-   data->dialog = eina_stringshare_add("_config_apps_ibar_dialog");
+   data->dialog = eina_stringshare_add("applications/ibar_applications");
    data->icon = eina_stringshare_add("preferences-applications-ibar");
    data->filename = eina_stringshare_add(buf);
 
@@ -117,7 +117,7 @@ e_int_config_apps_ibar_other(E_Container *con, const char *path)
    if (!path) return NULL;
    data = E_NEW(E_Config_Data, 1);
    data->title = eina_stringshare_add(_("IBar Applications"));
-   data->dialog = eina_stringshare_add("_config_apps_ibar_dialog");
+   data->dialog = eina_stringshare_add("internal/ibar_other");
    data->icon = eina_stringshare_add("preferences-applications-ibar");
    data->filename = eina_stringshare_add(path);
 
@@ -133,7 +133,7 @@ e_int_config_apps_startup(E_Container *con, const char *params __UNUSED__)
    e_user_dir_concat_static(buf, "applications/startup/.order");
    data = E_NEW(E_Config_Data, 1);
    data->title = eina_stringshare_add(_("Startup Applications"));
-   data->dialog = eina_stringshare_add("_config_apps_startup_dialog");
+   data->dialog = eina_stringshare_add("applications/startup_applications");
    data->icon = eina_stringshare_add("preferences-applications-startup");
    data->filename = eina_stringshare_add(buf);
 
@@ -149,7 +149,7 @@ e_int_config_apps_restart(E_Container *con, const char *params __UNUSED__)
    e_user_dir_concat_static(buf, "applications/restart/.order");
    data = E_NEW(E_Config_Data, 1);
    data->title = eina_stringshare_add(_("Restart Applications"));
-   data->dialog = eina_stringshare_add("_config_apps_restart_dialog");
+   data->dialog = eina_stringshare_add("applications/restart_applications");
    data->icon = eina_stringshare_add("preferences-applications-restart");
    data->filename = eina_stringshare_add(buf);
 
index 37c5274..6254b38 100644 (file)
@@ -28,7 +28,7 @@ e_int_config_borders(E_Container *con, const char *params __UNUSED__)
    v = _config_view_new();
    if (!v) return NULL;
    cfd = e_config_dialog_new(con, _("Default Border Style"), 
-                            "E", "_config_border_style_dialog", 
+                            "E", "appearance/borders", 
                             "preferences-system-windows", 0, v, con);
    return cfd;
 }
@@ -48,7 +48,7 @@ e_int_config_borders_border(E_Container *con __UNUSED__, const char *params)
    if (!v) return NULL;
    cfd = e_config_dialog_new(bd->zone->container, 
                             _("Window Border Selection"), 
-                            "E", "_config_border_border_style_dialog", 
+                            "E", "internal/borders_border", 
                             "preferences-system-windows", 0, v, bd);
    bd->border_border_dialog = cfd;
    return cfd;
index 763c349..9807da9 100644 (file)
@@ -38,7 +38,7 @@ e_int_config_clientlist(E_Container *con, const char *params __UNUSED__)
    v->advanced.create_widgets = NULL;
 
    cfd = e_config_dialog_new(con, _("Client List Settings"), "E", 
-                            "_config_clientlist_dialog",
+                            "menus/client_list_menu",
                             "preferences-winlist", 0, v, NULL);
    return cfd;
 }
index 360dfb6..12873b6 100644 (file)
@@ -116,7 +116,7 @@ e_int_config_color_classes(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_color_classes_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/colors")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    if (!v) return NULL;
    
@@ -127,7 +127,7 @@ e_int_config_color_classes(E_Container *con, const char *params __UNUSED__)
    v->advanced.apply_cfdata = _adv_apply_data;
    v->advanced.create_widgets = _adv_create_widgets;
    
-   cfd = e_config_dialog_new(con, _("Colors"), "E", "_config_color_classes_dialog",
+   cfd = e_config_dialog_new(con, _("Colors"), "E", "appearance/colors",
                             "preferences-desktop-color", 0, v, NULL);
    return cfd;
 }
index eb8c089..fc0b9b9 100644 (file)
@@ -33,7 +33,7 @@ e_int_config_desk(E_Container *con, const char *params)
    if (sscanf(params, "%i %i %i %i", &con_num, &zone_num, &dx, &dy) != 4)
      return NULL;
    
-   if (e_config_dialog_find("E", "_config_desk_dialog")) return NULL;
+   if (e_config_dialog_find("E", "internal/desk")) return NULL;
 
    v = E_NEW(E_Config_Dialog_View, 1);
    
@@ -49,7 +49,7 @@ e_int_config_desk(E_Container *con, const char *params)
    v->basic.create_widgets = _basic_create;
    v->override_auto_apply = 1;
    
-   cfd = e_config_dialog_new(con, _("Desk Settings"), "E", "_config_desk_dialog",
+   cfd = e_config_dialog_new(con, _("Desk Settings"), "E", "internal/desk",
                             "preferences-desktop", 0, v, cfdata);
    return cfd;
 }
index 9847b43..671c6ce 100644 (file)
@@ -79,7 +79,7 @@ e_int_config_desklock(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_desklock_dialog")) return NULL;
+   if (e_config_dialog_find("E", "screen/screen_lock")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    if (!v) return NULL;
    v->create_cfdata = _create_data;
@@ -94,7 +94,7 @@ e_int_config_desklock(E_Container *con, const char *params __UNUSED__)
    v->override_auto_apply = 1;
 
    cfd = e_config_dialog_new(con, _("Screen Lock Settings"), "E",
-                            "_config_desklock_dialog", "preferences-desklock",
+                            "screen/screen_lock", "preferences-desklock",
                             0, v, NULL);
    return cfd;
 }
index 2177b6d..8fa2a9f 100644 (file)
@@ -45,7 +45,7 @@ e_int_config_desks(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_desks_dialog")) return NULL;
+   if (e_config_dialog_find("E", "screen/virtual_desktops")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    /* methods */
@@ -60,7 +60,7 @@ e_int_config_desks(E_Container *con, const char *params __UNUSED__)
    /* create config diaolg for NULL object/data */
    cfd = e_config_dialog_new(con,
                             _("Virtual Desktops Settings"),
-                           "E", "_config_desks_dialog",
+                            "E", "screen/virtual_desktops",
                             "preferences-desktop", 0, v, NULL);
    return cfd;
 }
index 530106a..85d68ff 100644 (file)
@@ -15,6 +15,7 @@ struct _E_Config_Dialog_Data
    int cfgdlg_auto_apply;
    int cfgdlg_default_mode;
    int cfgdlg_normal_wins;
+   int remember_windows;
 };
 
 EAPI E_Config_Dialog *
@@ -23,7 +24,7 @@ e_int_config_dialogs(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_config_dialog_dialog")) return NULL;
+   if (e_config_dialog_find("E", "settings/dialogs")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -34,7 +35,7 @@ e_int_config_dialogs(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Dialog Settings"),
-                            "E", "_config_config_dialog_dialog",
+                            "E", "settings/dialogs",
                             "preferences-dialogs", 0, v, NULL);
    return cfd;
 }
@@ -46,6 +47,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
    cfdata->cfgdlg_auto_apply = e_config->cfgdlg_auto_apply;
    cfdata->cfgdlg_default_mode = e_config->cfgdlg_default_mode;
    cfdata->cfgdlg_normal_wins =  e_config->cfgdlg_normal_wins;
+   cfdata->remember_windows = (e_config->remember_internal_windows & E_REMEMBER_INTERNAL_DIALOGS);
 }
 
 static void *
@@ -72,6 +74,11 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
    /* (e_config->cfgdlg_auto_apply = cfdata->cfgdlg_auto_apply; */
    e_config->cfgdlg_default_mode = cfdata->cfgdlg_default_mode;
    e_config->cfgdlg_normal_wins = cfdata->cfgdlg_normal_wins;
+   if (cfdata->remember_windows)
+     e_config->remember_internal_windows |= E_REMEMBER_INTERNAL_DIALOGS;
+   else
+     e_config->remember_internal_windows &= ~E_REMEMBER_INTERNAL_DIALOGS;
+   
    e_config_save_queue();
    return 1;
 }
@@ -105,6 +112,11 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
    
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
+   of = e_widget_framelist_add(evas, _("Remember"), 0);
+   ob = e_widget_check_add(evas, _("Remember size and position of dialogs"), &(cfdata->remember_windows));
+   e_widget_framelist_object_append(of, ob);
+   e_widget_list_object_append(o, of, 1, 1, 0.5);
+   
    return o;
 }
 
index 3eddde3..26560f6 100644 (file)
@@ -216,7 +216,7 @@ e_int_config_display(E_Container *con, const char *params __UNUSED__)
         return NULL;
      }
 
-   if (e_config_dialog_find("E", "_config_display_dialog")) return NULL;
+   if (e_config_dialog_find("E", "screen/screen_resolution")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    v->create_cfdata = _create_data;
    v->free_cfdata = _free_data;
@@ -226,7 +226,7 @@ e_int_config_display(E_Container *con, const char *params __UNUSED__)
    v->override_auto_apply = 1;
 
    cfd = e_config_dialog_new(con, _("Screen Resolution Settings"),
-                            "E", "_config_display_dialog",
+                            "E", "screen/screen_resolution",
                             "preferences-system-screen-resolution", 0, v, NULL);
    return cfd;
 }
index ba43967..58a7dda 100644 (file)
@@ -95,7 +95,7 @@ e_int_config_dpms(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if ((e_config_dialog_find("E", "_config_dpms_dialog")) ||
+   if ((e_config_dialog_find("E", "screen/power_management")) ||
        (!_e_int_config_dpms_available()) ||
        (!_e_int_config_dpms_capable()))
      return NULL;
@@ -110,7 +110,7 @@ e_int_config_dpms(E_Container *con, const char *params __UNUSED__)
    v->override_auto_apply = 1;
 
    cfd = e_config_dialog_new(con, _("Display Power Management Settings"), "E",
-                            "_config_dpms_dialog", "preferences-system-power-management",
+                            "screen/power_management", "preferences-system-power-management",
                             0, v, NULL);
    return cfd;
 }
index 26c88bb..1c945fd 100644 (file)
@@ -90,7 +90,7 @@ e_int_config_edgebindings(E_Container *con, const char *params)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_edgebindings_dialog")) return NULL;
+   if (e_config_dialog_find("E", "keyboard_and_mouse/edge_bindings")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata = _create_data;
@@ -100,7 +100,7 @@ e_int_config_edgebindings(E_Container *con, const char *params)
    v->override_auto_apply = 1;
 
    cfd = e_config_dialog_new(con, _("Edge Binding Settings"), "E", 
-                            "_config_edgebindings_dialog",
+                            "keyboard_and_mouse/edge_bindings",
                             "enlightenment/edges", 0, v, NULL);
    if ((params) && (params[0]))
      {
index 0bc8a23..08346ae 100644 (file)
@@ -25,7 +25,7 @@ e_int_config_engine(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_engine_dialog")) return NULL;
+   if (e_config_dialog_find("E", "advanced/engine")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    if (!v) return NULL;
    v->create_cfdata = _create_data;
@@ -36,7 +36,7 @@ e_int_config_engine(E_Container *con, const char *params __UNUSED__)
 
    cfd = e_config_dialog_new(con,
                             _("Engine Settings"),
-                           "E", "_config_engine_dialog",
+                            "E", "advanced/engine",
                             "preferences-engine", 0, v, NULL);
    return cfd;
 }
index c396213..2f89346 100644 (file)
@@ -36,7 +36,7 @@ e_int_config_exebuf(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_exebuf_dialog")) return NULL;
+   if (e_config_dialog_find("E", "advanced/run_command")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -47,7 +47,7 @@ e_int_config_exebuf(E_Container *con, const char *params __UNUSED__)
    v->advanced.create_widgets = _advanced_create_widgets;
    cfd = e_config_dialog_new(con,
                             _("Run Command Settings"),
-                           "E", "_config_exebuf_dialog",
+                            "E", "advanced/run_command",
                             "system-run", 0, v, NULL);
    return cfd;
 }
index 824f715..c6a571b 100644 (file)
@@ -155,7 +155,7 @@ e_int_config_fonts(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_fonts_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/fonts")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata           = _create_data;
@@ -166,7 +166,7 @@ e_int_config_fonts(E_Container *con, const char *params __UNUSED__)
    v->advanced.apply_cfdata   = _advanced_apply_data;
 
    cfd = e_config_dialog_new(con, _("Font Settings"),
-                            "E", "_config_fonts_dialog",
+                            "E", "appearance/fonts",
                             "preferences-desktop-font", 0, v, NULL);
    return cfd;
 }
index 3bb74bc..95ea7ce 100644 (file)
@@ -30,7 +30,7 @@ e_int_config_icon_themes(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_icon_theme_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/icon_theme")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata           = _create_data;
@@ -41,7 +41,7 @@ e_int_config_icon_themes(E_Container *con, const char *params __UNUSED__)
 
    cfd = e_config_dialog_new(con,
                             _("Icon Theme Settings"),
-                            "E", "_config_icon_theme_dialog",
+                            "E", "appearance/icon_theme",
                             "preferences-icon-theme", 0, v, NULL);
    return cfd;
 }
index 7ed527a..15fe9c8 100644 (file)
@@ -95,7 +95,7 @@ e_int_config_imc(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_imc_dialog")) return NULL;
+   if (e_config_dialog_find("E", "language/input_method_settings")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata           = _create_data;
@@ -107,7 +107,7 @@ e_int_config_imc(E_Container *con, const char *params __UNUSED__)
 
    cfd = e_config_dialog_new(con,
                             _("Input Method Settings"),
-                           "E", "_config_imc_dialog",
+                            "E", "language/input_method_settings",
                             "preferences-imc", 0, v, NULL);
    return cfd;
 }
index 44db4b8..fe997f6 100644 (file)
@@ -23,7 +23,7 @@ e_int_config_interaction(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_config_interaction_dialog")) return NULL;
+   if (e_config_dialog_find("E", "keyboard_and_mouse/interaction")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -35,7 +35,7 @@ e_int_config_interaction(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Interaction Settings"),
-                            "E", "_config_config_interaction_dialog",
+                            "E", "keyboard_and_mouse/interaction",
                             "preferences-interaction", 0, v, NULL);
    return cfd;
 }
index 826bf19..1d507ee 100644 (file)
@@ -569,7 +569,7 @@ e_int_config_intl(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_intl_dialog")) return NULL;
+   if (e_config_dialog_find("E", "language/language_settings")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata           = _create_data;
@@ -581,7 +581,7 @@ e_int_config_intl(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Language Settings"),
-                           "E", "_config_intl_dialog",
+                            "E", "language/language_settings",
                             "preferences-desktop-locale", 0, v, NULL);
    return cfd;
 }
index 4ebf037..d419f8b 100644 (file)
@@ -80,7 +80,7 @@ e_int_config_keybindings(E_Container *con, const char *params)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_keybindings_dialog")) return NULL;
+   if (e_config_dialog_find("E", "keyboard_and_mouse/key_bindings")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata = _create_data;
@@ -90,7 +90,7 @@ e_int_config_keybindings(E_Container *con, const char *params)
    v->override_auto_apply = 1;
 
    cfd = e_config_dialog_new(con, _("Key Binding Settings"), "E", 
-                            "_config_keybindings_dialog",
+                            "keyboard_and_mouse/key_bindings",
                             "preferences-desktop-keyboard", 0, v, NULL);
    if ((params) && (params[0]))
      {
index ef977a8..95a7534 100644 (file)
@@ -30,7 +30,7 @@ e_int_config_menus(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_menus_dialog")) return NULL;
+   if (e_config_dialog_find("E", "menus/menu_settings")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -42,7 +42,7 @@ e_int_config_menus(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Menu Settings"),
-                            "E", "_config_menus_dialog",
+                            "E", "menus/menu_settings",
                             "preferences-menus", 0, v, NULL);
    return cfd;
 }
index 6057dc7..b6006bf 100644 (file)
@@ -54,14 +54,14 @@ e_int_config_mime(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_mime_dialog")) return NULL;
+   if (e_config_dialog_find("E", "fileman/file_icons")) return NULL;
    
    v = E_NEW(E_Config_Dialog_View, 1);
    v->create_cfdata = _create_data;
    v->free_cfdata = _free_data;
    v->basic.create_widgets = _basic_create;
    
-   cfd = e_config_dialog_new(con, _("File Icons"), "E", "_config_mime_dialog",
+   cfd = e_config_dialog_new(con, _("File Icons"), "E", "fileman/file_icons",
                             "preferences-file-icons", 0, v, NULL);
    return cfd;
 }
index 9786e38..8aee863 100644 (file)
@@ -23,7 +23,7 @@ e_int_config_mouse(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_mouse_dialog"))
+   if (e_config_dialog_find("E", "keyboard_and_mouse/mouse_settings"))
      return NULL;
 
    v = E_NEW(E_Config_Dialog_View, 1);
@@ -35,7 +35,7 @@ e_int_config_mouse(E_Container *con, const char *params __UNUSED__)
    v->basic.check_changed = _basic_check_changed;
 
    cfd = e_config_dialog_new(con, _("Mouse Settings"), "E",
-                            "_config_mouse_dialog",
+                            "keyboard_and_mouse/mouse_settings",
                             "preferences-desktop-mouse", 0, v, NULL);
    return cfd;
 }
index ddfba6f..0e4aa9d 100644 (file)
@@ -31,7 +31,7 @@ e_int_config_cursor(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_cursor_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/mouse_cursor")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -43,7 +43,7 @@ e_int_config_cursor(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Cursor Settings"),
-                            "E", "_config_cursor_dialog",
+                            "E", "appearance/mouse_cursor",
                             "preferences-desktop-pointer", 0, v, NULL);
    return cfd;
 }
index e95050d..939c939 100644 (file)
@@ -99,7 +99,7 @@ e_int_config_mousebindings(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_mousebindings_dialog")) return NULL;
+   if (e_config_dialog_find("E", "keyboard_and_mouse/mouse_bindings")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -110,7 +110,7 @@ e_int_config_mousebindings(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Mouse Binding Settings"),
-                            "E", "_config_mousebindings_dialog",
+                            "E", "keyboard_and_mouse/mouse_bindings",
                             "preferences-desktop-mouse", 0, v, NULL);
    return cfd;
 }
index d40858f..8131b85 100644 (file)
@@ -51,7 +51,7 @@ e_int_config_paths(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_paths_dialog")) return NULL;
+   if (e_config_dialog_find("E", "advanced/search_directories")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata           = _create_data;
@@ -60,7 +60,7 @@ e_int_config_paths(E_Container *con, const char *params __UNUSED__)
    v->basic.apply_cfdata      = _basic_apply_data;
    
    cfd = e_config_dialog_new(con, _("Search Path Settings"),
-                           "E", "_config_paths_dialog",
+                            "E", "advanced/search_directories",
                             "preferences-directories", 0, v, NULL);
    return cfd;
 }
index d227e7f..1ea07b3 100644 (file)
@@ -26,7 +26,7 @@ e_int_config_performance(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_performance_dialog")) return NULL;
+   if (e_config_dialog_find("E", "advanced/performance")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -38,7 +38,7 @@ e_int_config_performance(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Performance Settings"),
-                           "E", "_config_performance_dialog",
+                            "E", "advanced/performance",
                             "preferences-system-performance", 0, v, NULL);
    return cfd;
 }
index b27a78c..9cd410f 100644 (file)
@@ -43,7 +43,7 @@ e_int_config_profiles(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_profiles_dialog")) return NULL;
+   if (e_config_dialog_find("E", "settings/profiles")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    if (!v) return NULL;
    v->create_cfdata = _create_data;
@@ -53,7 +53,7 @@ e_int_config_profiles(E_Container *con, const char *params __UNUSED__)
 
    cfd = e_config_dialog_new(con,
                             _("Profile Selector"),
-                           "E", "_config_profiles_dialog",
+                            "E", "settings/profiles",
                             "preferences-profiles", 0, v, NULL);
    e_config_dialog_changed_auto_set(cfd, 0);
    return cfd;
index 7100fa2..cce7b3f 100644 (file)
@@ -45,7 +45,7 @@ e_int_config_scale(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_scale_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/scale")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -59,7 +59,7 @@ e_int_config_scale(E_Container *con, const char *params __UNUSED__)
 
    cfd = e_config_dialog_new(con,
                             _("Scaling Settings"),
-                            "E", "_config_scale_dialog",
+                            "E", "appearance/scale",
                             "preferences-scale", 0, v, NULL);
    return cfd;
 }
index 946720e..5b1176f 100644 (file)
@@ -52,7 +52,7 @@ e_int_config_screensaver(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_screensaver_dialog")) return NULL;
+   if (e_config_dialog_find("E", "screen/screen_saver")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata = _create_data;
@@ -65,7 +65,7 @@ e_int_config_screensaver(E_Container *con, const char *params __UNUSED__)
    v->override_auto_apply = 1;
 
    cfd = e_config_dialog_new(con,_("Screen Saver Settings"),
-                            "E", "_config_screensaver_dialog",
+                            "E", "screen/screen_saver",
                             "preferences-desktop-screensaver", 0, v, NULL);
    return cfd;
 }
index 0e6a75f..e2c1c7f 100644 (file)
@@ -33,7 +33,7 @@ e_int_config_shelf(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_shelf_dialog")) return NULL;
+   if (e_config_dialog_find("E", "extensions/shelves")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    if (!v) return NULL; 
    v->create_cfdata = _create_data;
@@ -41,7 +41,7 @@ e_int_config_shelf(E_Container *con, const char *params __UNUSED__)
    v->basic.create_widgets = _basic_create;
 
    cfd = e_config_dialog_new(con, _("Shelf Settings"), "E", 
-                            "_config_shelf_dialog",
+                            "extensions/shelves",
                             "preferences-desktop-shelf", 0, v, NULL);
    return cfd;
 }
index c7141ef..4de11bf 100644 (file)
@@ -27,7 +27,7 @@ e_int_config_startup(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_startup_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/startup")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -37,7 +37,7 @@ e_int_config_startup(E_Container *con, const char *params __UNUSED__)
    
    cfd = e_config_dialog_new(con,
                             _("Startup Settings"),
-                            "E", "_config_startup_dialog",
+                            "E", "appearance/startup",
                             "preferences-startup", 0, v, NULL);
    return cfd;
 }
index 49e1665..fc8bbae 100644 (file)
@@ -76,7 +76,7 @@ e_int_config_theme(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_theme_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/theme")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata           = _create_data;
@@ -88,7 +88,7 @@ e_int_config_theme(E_Container *con, const char *params __UNUSED__)
    v->override_auto_apply = 1;
    cfd = e_config_dialog_new(con,
                             _("Theme Selector"),
-                            "E", "_config_theme_dialog",
+                            "E", "appearance/theme",
                             "preferences-desktop-theme", 0, v, NULL);
    return cfd;
 }
index c994613..fbd7573 100644 (file)
@@ -32,7 +32,7 @@ e_int_config_transitions(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_transitions_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/transitions")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    if (!v) return NULL;
    
@@ -42,7 +42,7 @@ e_int_config_transitions(E_Container *con, const char *params __UNUSED__)
    v->basic.create_widgets = _basic_create_widgets;
    
    cfd = e_config_dialog_new(con, _("Transition Settings"),
-                            "E", "_config_transitions_dialog",
+                            "E", "appearance/transitions",
                             "preferences-transitions", 0, v, NULL);
    return cfd;
 }
index 82c0695..48d21d1 100644 (file)
@@ -83,7 +83,7 @@ _e_int_config_wallpaper_desk(E_Container *con, int con_num, int zone_num, int de
    E_Config_Dialog_View *v;
    E_Config_Wallpaper *cw;
 
-   if (e_config_dialog_find("E", "_config_wallpaper_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/wallpaper")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    cw = E_NEW(E_Config_Wallpaper, 1);
 
@@ -108,7 +108,7 @@ _e_int_config_wallpaper_desk(E_Container *con, int con_num, int zone_num, int de
    cw->desk_y = desk_y;
 
    cfd = e_config_dialog_new(con, _("Wallpaper Settings"), "E", 
-                            "_config_wallpaper_dialog",
+                            "appearance/wallpaper",
                             "preferences-desktop-wallpaper", 0, v, cw);
    return cfd;
 }
index da33f32..92c114a 100644 (file)
@@ -1149,7 +1149,7 @@ wp_browser_new(E_Container *con)
    info->dirs = eina_list_append(info->dirs, strdup(buf));
    
    e_win_title_set(win, _("Wallpaper Settings"));
-   e_win_name_class_set(win, "E", "_config_wallpaper_dialog");
+   e_win_name_class_set(win, "E", "_config::appearance/wallpaper2");
    e_win_border_icon_set(win, "preferences-desktop-wallpaper");
    e_win_resize_callback_set(win, _resize);
    e_win_delete_callback_set(win, _delete);
index d1db644..50afeb8 100644 (file)
@@ -31,7 +31,7 @@ struct _E_Config_Dialog_Data
    int border_shade_transition;
    double border_shade_speed;
    int use_app_icon;
-   int remember_internal_windows;
+   /* int remember_internal_windows; */
 };
 
 Eina_List *shading_list = NULL;
@@ -43,7 +43,7 @@ e_int_config_window_display(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_window_display_dialog")) return NULL;
+   if (e_config_dialog_find("E", "windows/window_display")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    /* methods */
@@ -56,7 +56,7 @@ e_int_config_window_display(E_Container *con, const char *params __UNUSED__)
    /* create config diaolg for NULL object/data */
    cfd = e_config_dialog_new(con,
                             _("Window Display"),
-                            "E", "_config_window_display_dialog",
+                            "E", "windows/window_display",
                             "preferences-system-windows", 0, v, NULL);
    return cfd;
 }
@@ -77,7 +77,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
        cfdata->resize_info_visible) cfdata->move_resize_info = 1;
    if (cfdata->border_shade_animate) cfdata->animate_shading = 1;
    cfdata->use_app_icon = e_config->use_app_icon;
-   cfdata->remember_internal_windows = e_config->remember_internal_windows;
+   /* cfdata->remember_internal_windows = e_config->remember_internal_windows; */
    cfdata->desk_auto_switch = e_config->desk_auto_switch;
 }
 
@@ -143,7 +143,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
    e_config->border_shade_transition = cfdata->border_shade_transition;
    e_config->border_shade_speed = cfdata->border_shade_speed;
    e_config->use_app_icon = cfdata->use_app_icon;
-   e_config->remember_internal_windows = cfdata->remember_internal_windows;
+   /* e_config->remember_internal_windows = cfdata->remember_internal_windows; */
    e_config->desk_auto_switch = cfdata->desk_auto_switch;
    e_config_save_queue();
    return 1; /* Apply was OK */
@@ -275,11 +275,11 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
    e_widget_framelist_object_append(of, ob);
    e_widget_table_object_append(ot, of, 0, 2, 1, 1, 1, 1, 1, 1);
 
-   of = e_widget_framelist_add(evas, _("Internal Windows"), 0);
-   e_widget_framelist_content_align_set(of, 0.0, 0.0);
-   ob = e_widget_check_add(evas, _("Always remember internal windows"), &(cfdata->remember_internal_windows));
-   e_widget_framelist_object_append(of, ob);
-   e_widget_table_object_append(ot, of, 1, 2, 1, 1, 1, 1, 1, 1);
+   /* of = e_widget_framelist_add(evas, _("Internal Windows"), 0);
+    * e_widget_framelist_content_align_set(of, 0.0, 0.0);
+    * ob = e_widget_check_add(evas, _("Always remember internal windows"), &(cfdata->remember_internal_windows));
+    * e_widget_framelist_object_append(of, ob);
+    * e_widget_table_object_append(ot, of, 1, 2, 1, 1, 1, 1, 1, 1); */
 
    return ot;
 }
index e0b1d93..4f39be3 100644 (file)
@@ -35,7 +35,7 @@ e_int_config_focus(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_focus_dialog")) return NULL;
+   if (e_config_dialog_find("E", "windows/window_focus")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    /* methods */
@@ -48,7 +48,7 @@ e_int_config_focus(E_Container *con, const char *params __UNUSED__)
    /* create config diaolg for NULL object/data */
    cfd = e_config_dialog_new(con,
                             _("Focus Settings"),
-                            "E", "_config_focus_dialog",
+                            "E", "windows/window_focus",
                             "preferences-focus", 0, v, NULL);
    return cfd;
 }
index d94fef5..ce6f960 100644 (file)
@@ -41,7 +41,7 @@ e_int_config_window_geometry(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_window_geometry_dialog")) return NULL;
+   if (e_config_dialog_find("E", "windows/window_geometry")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    /* methods */
@@ -52,7 +52,7 @@ e_int_config_window_geometry(E_Container *con, const char *params __UNUSED__)
    /* create config diaolg for NULL object/data */
    cfd = e_config_dialog_new(con,
                             _("Window Geometry"),
-                            "E", "_config_window_geometry_dialog",
+                            "E", "windows/window_geometry",
                             "preferences-window-manipulation", 0, v, NULL);
    return cfd;
 }
index e48f407..00590e7 100644 (file)
@@ -29,7 +29,7 @@ e_int_config_window_maxpolicy(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_window_maxpolicy_dialog")) return NULL;
+   if (e_config_dialog_find("E", "windows/window_maxpolicy")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    /* methods */
@@ -42,7 +42,7 @@ e_int_config_window_maxpolicy(E_Container *con, const char *params __UNUSED__)
    /* create config diaolg for NULL object/data */
    cfd = e_config_dialog_new(con,
                             _("Window Maximize Policy"),
-                            "E", "_config_window_maxpolicy_dialog",
+                            "E", "windows/window_maxpolicy",
                             "preferences-window-manipulation", 0, v, NULL);
    return cfd;
 }
index 0311070..0fc22b6 100644 (file)
@@ -33,7 +33,7 @@ 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", "_config_window_stacking_dialog")) return NULL;
+   if (e_config_dialog_find("E", "windows/window_stacking")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    /* methods */
@@ -46,7 +46,7 @@ e_int_config_window_stacking(E_Container *con, const char *params __UNUSED__)
    /* create config diaolg for NULL object/data */
    cfd = e_config_dialog_new(con,
                             _("Window Stacking"),
-                            "E", "_config_window_stacking_dialog",
+                            "E", "windows/window_stacking",
                             "preferences-window-stacking", 0, v, NULL);
    return cfd;
 }
index e780892..4230125 100644 (file)
@@ -3,6 +3,7 @@
 /* function protos */
 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_data(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 void _fill_remembers(E_Config_Dialog_Data *cfdata);
 static void _cb_delete(void *data, void *data2);
@@ -11,6 +12,8 @@ static void _cb_list_change(void *data, Evas_Object *obj);
 struct _E_Config_Dialog_Data 
 {
    Evas_Object *list, *btn, *name, *class, *title, *role;
+   int remember_dialogs;
+   int remember_fm_wins;
 };
 
 EAPI E_Config_Dialog *
@@ -19,15 +22,16 @@ e_int_config_remembers(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_remembers_dialog")) return NULL;
+   if (e_config_dialog_find("E", "windows/window_remembers")) return NULL;
 
    v = E_NEW(E_Config_Dialog_View, 1);
    v->create_cfdata = _create_data;
    v->free_cfdata = _free_data;
+   v->basic.apply_cfdata = _basic_apply_data;
    v->basic.create_widgets = _basic_create;
 
    cfd = e_config_dialog_new(con, _("Window Remembers"), "E", 
-                             "_config_remembers_dialog", 
+                             "windows/window_remembers", 
                              "preferences-desktop-window-remember", 0, v, NULL);
    e_dialog_resizable_set(cfd->dia, 1);
    return cfd;
@@ -75,6 +79,9 @@ _create_data(E_Config_Dialog *cfd)
    E_Config_Dialog_Data *cfdata;
 
    cfdata = E_NEW(E_Config_Dialog_Data, 1);
+   cfdata->remember_dialogs = (e_config->remember_internal_windows & E_REMEMBER_INTERNAL_DIALOGS);
+   cfdata->remember_fm_wins = (e_config->remember_internal_windows & E_REMEMBER_INTERNAL_FM_WINS);
+   
    return cfdata;
 }
 
@@ -84,6 +91,23 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
    E_FREE(cfdata);
 }
 
+static int
+_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
+{
+   if (cfdata->remember_dialogs)
+     e_config->remember_internal_windows |= E_REMEMBER_INTERNAL_DIALOGS;
+   else
+     e_config->remember_internal_windows &= ~E_REMEMBER_INTERNAL_DIALOGS;
+
+   if (cfdata->remember_fm_wins)
+     e_config->remember_internal_windows |= E_REMEMBER_INTERNAL_FM_WINS;
+   else
+     e_config->remember_internal_windows &= ~E_REMEMBER_INTERNAL_FM_WINS;
+
+   e_config_save_queue();
+   return 1;
+}
+
 static Evas_Object *
 _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) 
 {
@@ -92,6 +116,11 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
    o = e_widget_list_add(evas, 0, 0);
    of = e_widget_frametable_add(evas, _("Window Remembers"), 0);
 
+   ow = e_widget_check_add(evas, _("Remember internal dialogs"), &(cfdata->remember_dialogs));
+   e_widget_frametable_object_append(of, ow, 0, 0, 1, 1, 1, 1, 1, 0);
+   ow = e_widget_check_add(evas, _("Remember fileman windows"),  &(cfdata->remember_fm_wins));
+   e_widget_frametable_object_append(of, ow, 0, 1, 1, 1, 1, 1, 1, 0);
+
    ow = e_widget_button_add(evas, _("Delete Remember(s)"), "list-remove",
                            _cb_delete, cfdata, NULL);
    cfdata->btn = ow;
@@ -124,12 +153,11 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
    cfdata->role = ow;
    e_widget_frametable_object_append(of2, cfdata->role, 1, 3, 1, 1, 1, 1, 1, 0);
 
-   e_widget_frametable_object_append(of, cfdata->list, 0, 0, 1, 1, 1, 1, 1, 1);
-   e_widget_frametable_object_append(of, of2, 0, 1, 1, 1, 1, 1, 1, 0);
-   e_widget_frametable_object_append(of, cfdata->btn, 0, 2, 1, 1, 1, 1, 1, 0);
-
+   e_widget_frametable_object_append(of, cfdata->list, 0, 2, 1, 1, 1, 1, 1, 1);
+   e_widget_frametable_object_append(of, of2, 0, 3, 1, 1, 1, 1, 1, 0);
+   e_widget_frametable_object_append(of, cfdata->btn, 0, 4, 1, 1, 1, 1, 1, 0);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
-
+   
    e_widget_disabled_set(cfdata->btn, 1);
    return o;
 }
index be09336..7e29a76 100644 (file)
@@ -48,7 +48,7 @@ e_int_config_winlist(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_winlist_dialog")) return NULL;
+   if (e_config_dialog_find("E", "windows/window_list")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -60,7 +60,7 @@ e_int_config_winlist(E_Container *con, const char *params __UNUSED__)
 
    cfd = e_config_dialog_new(con,
                             _("Window List Settings"),
-                            "E", "_config_winlist_dialog",
+                            "E", "windows/window_list",
                             "preferences-winlist", 0, v, NULL);
    return cfd;
 }
index e7c4710..7ee0d99 100644 (file)
@@ -27,7 +27,7 @@ e_int_config_dropshadow_module(E_Container *con, const char *params __UNUSED__)
    Dropshadow *ds;
 
    ds = dropshadow_mod->data;
-   if (e_config_dialog_find("E", "_e_mod_dropshadow_config_dialog")) return NULL;
+   if (e_config_dialog_find("E", "appearance/dropshadow")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    
    v->create_cfdata = _create_data;
@@ -38,7 +38,7 @@ e_int_config_dropshadow_module(E_Container *con, const char *params __UNUSED__)
    snprintf(buf, sizeof(buf), "%s/e-module-dropshadow.edj", e_module_dir_get(ds->module));
    cfd = e_config_dialog_new(con,
                             _("Dropshadow Settings"),
-                            "E", "_e_mod_dropshadow_config_dialog",
+                            "E", "appearance/dropshadow",
                             buf, 0, v, ds);
    ds->config_dialog = cfd;
    return cfd;
index 8a40ff5..f637611 100644 (file)
@@ -206,8 +206,8 @@ _config_init()
      {
        evry_conf = E_NEW(Config, 1);
        evry_conf->version = CONFIG_VERSION;
-       evry_conf->rel_x = 50.0;
-       evry_conf->rel_y = 50.0;
+       evry_conf->rel_x = 0.5;
+       evry_conf->rel_y = 0.33;
        evry_conf->width = 0;
        evry_conf->height = 0;
        evry_conf->scroll_animate = 0;
index 797efbc..a85c96e 100644 (file)
@@ -41,7 +41,7 @@ evry_config_dialog(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
 
-   if (e_config_dialog_find("E", "_config_everything_dialog")) return NULL;
+   if (e_config_dialog_find("E", "extensions/run_everything")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata = _create_data;
@@ -52,7 +52,7 @@ evry_config_dialog(E_Container *con, const char *params __UNUSED__)
    v->advanced.create_widgets = NULL;
    cfd = e_config_dialog_new(con,
                             _("Everything Settings"),
-                            "E", "_config_everything_dialog",
+                            "E", "extensions/run_everything",
                             "system-run", 0, v, NULL);
    return cfd;
 }
index 21377fc..dbfdba4 100644 (file)
@@ -44,8 +44,6 @@ struct _E_Fwin
 
    Ecore_Event_Handler *zone_handler;
    Ecore_Event_Handler *zone_del_handler;
-
-   unsigned char        geom_save_ready : 1;
 };
 
 struct _E_Fwin_Page
@@ -172,55 +170,7 @@ e_fwin_shutdown(void)
 EAPI void
 e_fwin_new(E_Container *con, const char *dev, const char *path)
 {
-   E_Fwin *fwin;
-   E_Fm2_Custom_File *cf;
-   char buf[PATH_MAX];
-   int x, y, w, h;
-
-   fwin = _e_fwin_new(con, dev, path);
-
-   if (!fwin) return;
-
-   snprintf(buf, sizeof(buf), "dir::%s", e_fm2_real_path_get(fwin->cur_page->fm_obj));
-   cf = e_fm2_custom_file_get(buf);
-   if ((cf) && (cf->geom.valid))
-     {
-       int zx, zy, zw, zh;
-
-       x = cf->geom.x;
-       y = cf->geom.y;
-       w = cf->geom.w;
-       h = cf->geom.h;
-
-       e_zone_useful_geometry_get(fwin->win->border->zone,
-                                  &zx, &zy, &zw, &zh);
-
-       /* checking width and height */
-       if (w < 24)
-         w = 280 * e_scale;
-       else if (w > zw)
-         w = zw;
-       if (h < 24)
-         h = 200 * e_scale;
-       else if (h > zh)
-         h = zh;
-
-       /* checking left-top corner */
-       if (x < zx)
-         x = zx;
-       if (y < zy)
-         y = zy;
-
-       /* checking right-bottom corner */
-       if ((zx + zw) < (x + w))
-         x = zx + zw - w;
-       if ((zy + zh) < (y + h))
-         y = zy + zh - h;
-
-       e_win_move_resize(fwin->win, x, y, w, h);
-     }
-
-   fwin->geom_save_ready = 1;
+   _e_fwin_new(con, dev, path);
 }
 
 EAPI void
@@ -409,7 +359,8 @@ _e_fwin_new(E_Container *con, const char *dev, const char *path)
    E_Fwin *fwin;
    E_Fwin_Page *page;
    Evas_Object *o;
-
+   char buf[PATH_MAX];
+   
    fwin = E_OBJECT_ALLOC(E_Fwin, E_FWIN_TYPE, _e_fwin_free);
    if (!fwin) return NULL;
    fwin->win = e_win_new(con);
@@ -448,10 +399,10 @@ _e_fwin_new(E_Container *con, const char *dev, const char *path)
    evas_object_pass_events_set(o, 1);
    fwin->over_obj = o;
 
-   e_win_name_class_set(fwin->win, "E", "e_fwin");
-
    e_fm2_path_set(page->fm_obj, dev, path);
    _e_fwin_window_title_set(page);
+   snprintf(buf, sizeof(buf), "e_fwin::%s", e_fm2_real_path_get(fwin->cur_page->fm_obj));
+   e_win_name_class_set(fwin->win, "E", buf);
 
    e_win_size_min_set(fwin->win, 24, 24);
    e_win_resize(fwin->win, 280 * e_scale, 200 * e_scale);
@@ -1084,27 +1035,27 @@ _e_fwin_cb_delete(E_Win *win)
    e_object_del(E_OBJECT(fwin));
 }
 
-static void
-_e_fwin_geom_save(E_Fwin *fwin)
-{
-   char buf[PATH_MAX];
-   E_Fm2_Custom_File *cf;
-
-   if (!fwin->geom_save_ready) return;
-   snprintf(buf, sizeof(buf), "dir::%s", e_fm2_real_path_get(fwin->cur_page->fm_obj));
-   cf = e_fm2_custom_file_get(buf);
-   if (!cf)
-     {
      cf = alloca(sizeof(E_Fm2_Custom_File));
      memset(cf, 0, sizeof(E_Fm2_Custom_File));
-     }
-   cf->geom.x = fwin->win->x;
-   cf->geom.y = fwin->win->y;
-   cf->geom.w = fwin->win->w;
-   cf->geom.h = fwin->win->h;
-   cf->geom.valid = 1;
-   e_fm2_custom_file_set(buf, cf);
-}
+/* static void
+ * _e_fwin_geom_save(E_Fwin *fwin)
+ * {
*    char buf[PATH_MAX];
*    E_Fm2_Custom_File *cf;
+ * 
*    if (!fwin->geom_save_ready) return;
*    snprintf(buf, sizeof(buf), "dir::%s", e_fm2_real_path_get(fwin->cur_page->fm_obj));
*    cf = e_fm2_custom_file_get(buf);
*    if (!cf)
*      {
*     cf = alloca(sizeof(E_Fm2_Custom_File));
*     memset(cf, 0, sizeof(E_Fm2_Custom_File));
*      }
*    cf->geom.x = fwin->win->x;
*    cf->geom.y = fwin->win->y;
*    cf->geom.w = fwin->win->w;
*    cf->geom.h = fwin->win->h;
*    cf->geom.valid = 1;
*    e_fm2_custom_file_set(buf, cf);
+ * } */
 
 static void
 _e_fwin_cb_move(E_Win *win)
@@ -1113,7 +1064,7 @@ _e_fwin_cb_move(E_Win *win)
 
    if (!win) return; //safety
    fwin = win->data;
-   _e_fwin_geom_save(fwin);
+   /* _e_fwin_geom_save(fwin); */
 }
 
 static void
@@ -1147,7 +1098,7 @@ _e_fwin_cb_resize(E_Win *win)
      }
    else if (fwin->zone)
      evas_object_resize(fwin->cur_page->scrollframe_obj, fwin->zone->w, fwin->zone->h);
-   _e_fwin_geom_save(fwin);
+   /* _e_fwin_geom_save(fwin); */
 }
 
 static void
@@ -1686,14 +1637,16 @@ _e_fwin_file_open_dialog(E_Fwin_Page *page, Eina_List *files, int always)
                    {
                       Evas_Object *oic;
                       const char *itype = NULL;
-                      int ix, iy, iw, ih, nx, ny, nw, nh;
+                      int ix, iy, iw, ih, nx, ny, found = 0;
+                      E_Remember *rem = NULL;
+                      Eina_List *ll;
 
                       oic = e_fm2_icon_get(evas_object_evas_get(page->fm_obj),
                                            ici->ic, NULL, NULL, 0, &itype);
                       if (oic)
                         {
                            const char *file = NULL, *group = NULL;
-                           E_Fm2_Custom_File *cf;
+                           /* E_Fm2_Custom_File *cf; */
                            
                            if (fwin2->win->border->internal_icon)
                              eina_stringshare_del(fwin2->win->border->internal_icon);
@@ -1721,42 +1674,18 @@ _e_fwin_file_open_dialog(E_Fwin_Page *page, Eina_List *files, int always)
                                   eina_stringshare_add(file);
                              }
                            evas_object_del(oic);
+
+                           snprintf(buf, sizeof(buf), "e_fwin::%s", e_fm2_real_path_get(fwin2->cur_page->fm_obj));
+                           EINA_LIST_FOREACH(e_config->remembers, ll, rem)
+                             if (rem->class && !strcmp(rem->class, buf))
+                               {
+                                  found = 1;
+                                  break;
+                               }
                            
-                           snprintf(buf, sizeof(buf), "dir::%s",
-                                    e_fm2_real_path_get(fwin2->cur_page->fm_obj));
-                           cf = e_fm2_custom_file_get(buf);
-                           if ((cf) && (cf->geom.valid))
-                             {
-                                nx = cf->geom.x;
-                                ny = cf->geom.y;
-                                nw = cf->geom.w;
-                                nh = cf->geom.h;
-                                /* if it ended up too small - fix to a decent size  */
-                                if (nw < 24) nw = 200 * e_scale;
-                                if (nh < 24) nh = 280 * e_scale;
-
-                                /* if it ended up out of the zone */
-                                if (nx < fwin2->win->border->zone->x)
-                                  nx = fwin2->win->border->zone->x;
-                                if (ny < fwin2->win->border->zone->y)
-                                  ny = fwin2->win->border->zone->y;
-                                if ((fwin2->win->border->zone->x + 
-                                     fwin2->win->border->zone->w) <
-                                    (fwin2->win->border->w + nx))
-                                  nx = fwin2->win->border->zone->x + 
-                                  fwin2->win->border->zone->w - 
-                                    fwin2->win->border->w;
-                                if ((fwin2->win->border->zone->y + 
-                                     fwin2->win->border->zone->h) <
-                                    (fwin2->win->border->h + ny))
-                                  ny = fwin2->win->border->zone->y + 
-                                  fwin2->win->border->zone->h - 
-                                  fwin2->win->border->h;
-                                e_win_move_resize(fwin2->win, nx, ny, nw, nh);
-                             }
-                           else
+                           if (!found)
                              {
-                                /* No custom info, so just put window near icon */
+                              /* No custom info, so just put window near icon */
                                 e_fm2_icon_geometry_get(ici->ic, &ix, &iy, &iw, &ih);
                                 nx = (ix + (iw / 2));
                                 ny = (iy + (ih / 2));
@@ -1777,7 +1706,6 @@ _e_fwin_file_open_dialog(E_Fwin_Page *page, Eina_List *files, int always)
                                 e_win_move(fwin2->win, nx, ny);
                              }
                         }
-                      fwin2->geom_save_ready = 1;
                       if (ici->label)
                         e_win_title_set(fwin2->win, ici->label);
                       else if (ici->file)
index f68a0cb..cf986a8 100644 (file)
@@ -85,7 +85,7 @@ e_int_config_fileman(E_Container *con, const char *params __UNUSED__)
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
    
-   if (e_config_dialog_find("E", "_config_fileman_dialog")) return NULL;
+   if (e_config_dialog_find("E", "fileman/fileman")) return NULL;
    v = E_NEW(E_Config_Dialog_View, 1);
    v->create_cfdata = _create_data;
    v->free_cfdata = _free_data;
@@ -93,7 +93,7 @@ e_int_config_fileman(E_Container *con, const char *params __UNUSED__)
    v->basic.create_widgets = _basic_create;
    v->basic.check_changed = _basic_check_changed;
    cfd = e_config_dialog_new(con, _("Fileman Settings"), "E", 
-                            "_config_fileman_dialog",
+                            "fileman/fileman",
                             "system-file-manager", 0, v, NULL);
    return cfd;
 }
index 15edba9..d340b04 100644 (file)
@@ -42,7 +42,7 @@ _config_gadman_module(E_Container *con, const char *params __UNUSED__)
    char buf[4096];
 
    /* check if config dialog exists ... */
-   if (e_config_dialog_find("E", "_e_modules_gadman_config_dialog"))
+   if (e_config_dialog_find("E", "extensions/gadman"))
      return NULL;
 
    /* ... else create it */
@@ -56,7 +56,7 @@ _config_gadman_module(E_Container *con, const char *params __UNUSED__)
 
    snprintf(buf, sizeof(buf), "%s/e-module-gadman.edj", Man->module->dir);
    cfd = e_config_dialog_new(con, _("Gadgets Manager"),
-                             "E", "_e_modules_gadman_config_dialog",
+                             "E", "extensions/gadman",
                              buf, 0, v, Man);
 
    Man->config_dialog = cfd;
index 4df8d5b..42311d9 100644 (file)
@@ -172,7 +172,7 @@ e_mixer_config_module_dialog_new(E_Container *con, E_Mixer_Module_Context *ctxt)
    E_Config_Dialog *dialog;
    E_Config_Dialog_View *view;
 
-   if (e_config_dialog_find(_Name, "e_mixer_config_module_dialog_new"))
+   if (e_config_dialog_find(_Name, "extensions/mixer"))
       return NULL;
 
    view = E_NEW(E_Config_Dialog_View, 1);
@@ -185,7 +185,7 @@ e_mixer_config_module_dialog_new(E_Container *con, E_Mixer_Module_Context *ctxt)
    view->basic.apply_cfdata = _basic_apply;
 
    dialog = e_config_dialog_new(con, _("Mixer Module Settings"),
-                                _Name, "e_mixer_config_module_dialog_new",
+                                _Name, "extensions/mixer",
                                 e_mixer_theme_path(), 0, view, ctxt);
 
    return dialog;
index efe514e..2280399 100644 (file)
@@ -1071,7 +1071,7 @@ _mixer_module_config(E_Container *con, const char *params __UNUSED__)
 }
 
 static const char _reg_cat[] = "extensions";
-static const char _reg_item[] = "extensions/e";
+static const char _reg_item[] = "extensions/mixer";
 
 static void
 _mixer_configure_registry_register(void)