freeze Files submenus before they are realized so they don't try to draw before they are ready

SVN revision: 74907
This commit is contained in:
Mike Blumenkrantz 2012-08-06 08:16:42 +00:00
parent b270841119
commit 98844e3d17
1 changed files with 6 additions and 1 deletions

View File

@ -345,6 +345,7 @@ _e_mod_fileman_parse_gtk_bookmarks(E_Menu *m,
e_object_data_set(E_OBJECT(sub), eina_stringshare_add("/"));
e_object_free_attach_func_set(E_OBJECT(sub), _e_mod_menu_cleanup_cb);
e_menu_item_submenu_set(mi, sub);
e_menu_freeze(sub);
e_menu_pre_activate_callback_set(sub, _e_mod_menu_populate, NULL);
}
}
@ -435,6 +436,7 @@ _e_mod_menu_populate_item(void *data, Eio_File *handler __UNUSED__, const Eina_F
e_object_data_set(E_OBJECT(sub), eina_stringshare_ref(dev));
e_object_free_attach_func_set(E_OBJECT(sub), _e_mod_menu_cleanup_cb);
e_menu_item_submenu_set(mi, sub);
e_menu_freeze(sub);
e_menu_pre_activate_callback_set(sub, _e_mod_menu_populate, NULL);
}
@ -477,7 +479,6 @@ _e_mod_menu_populate(void *d __UNUSED__, E_Menu *m)
dev = e_object_data_get(E_OBJECT(m));
path = mi ? e_object_data_get(E_OBJECT(mi)) : NULL;
rp = e_fm2_real_path_map(dev, path ?: "/");
e_menu_freeze(m);
ls = eio_file_stat_ls(rp, _e_mod_menu_populate_filter, _e_mod_menu_populate_item, _e_mod_menu_populate_done, _e_mod_menu_populate_err, m);
EINA_SAFETY_ON_NULL_RETURN(ls);
eina_stringshare_del(rp);
@ -506,6 +507,7 @@ _e_mod_menu_generate(void *data __UNUSED__,
e_object_data_set(E_OBJECT(sub), s);
e_object_free_attach_func_set(E_OBJECT(sub), _e_mod_menu_cleanup_cb);
e_menu_item_submenu_set(mi, sub);
e_menu_freeze(sub);
e_menu_pre_activate_callback_set(sub, _e_mod_menu_populate, NULL);
/* Desktop */
@ -518,6 +520,7 @@ _e_mod_menu_generate(void *data __UNUSED__,
e_object_data_set(E_OBJECT(sub), s);
e_object_free_attach_func_set(E_OBJECT(sub), _e_mod_menu_cleanup_cb);
e_menu_item_submenu_set(mi, sub);
e_menu_freeze(sub);
e_menu_pre_activate_callback_set(sub, _e_mod_menu_populate, NULL);
/* Favorites */
@ -530,6 +533,7 @@ _e_mod_menu_generate(void *data __UNUSED__,
e_object_data_set(E_OBJECT(sub), s);
e_object_free_attach_func_set(E_OBJECT(sub), _e_mod_menu_cleanup_cb);
e_menu_item_submenu_set(mi, sub);
e_menu_freeze(sub);
e_menu_pre_activate_callback_set(sub, _e_mod_menu_populate, NULL);
/* Trash */
@ -548,6 +552,7 @@ _e_mod_menu_generate(void *data __UNUSED__,
e_object_data_set(E_OBJECT(sub), s);
e_object_free_attach_func_set(E_OBJECT(sub), _e_mod_menu_cleanup_cb);
e_menu_item_submenu_set(mi, sub);
e_menu_freeze(sub);
e_menu_pre_activate_callback_set(sub, _e_mod_menu_populate, NULL);
need_separator = 1;