Updating branch refs/heads/jannis/global-monitoring to 25864bee17ba4394e2db8c91ff38d91e8f063971 (commit) from a45a599c89f2ef788f0d67d81d431aeea94285e9 (commit)
commit 25864bee17ba4394e2db8c91ff38d91e8f063971 Author: Jannis Pohlmann <jan...@xfce.org> Date: Mon Aug 30 15:01:46 2010 +0200 Squashme garcon/garcon-menu.c | 78 +++++++++++++++++++++++++------------------------- 1 files changed, 39 insertions(+), 39 deletions(-) diff --git a/garcon/garcon-menu.c b/garcon/garcon-menu.c index 902afb9..930c938 100644 --- a/garcon/garcon-menu.c +++ b/garcon/garcon-menu.c @@ -2150,6 +2150,43 @@ garcon_menu_find_file_item (GarconMenu *menu, static void +garcon_menu_update_item_file (GarconMenu *menu, + const gchar *desktop_id, + GFile *file) +{ + GarconMenuItem *item; + gboolean included_somewhere = FALSE; + gchar *uri; + + g_return_if_fail (GARCON_IS_MENU (menu)); + g_return_if_fail (desktop_id != NULL && *desktop_id != '\0'); + g_return_if_fail (G_IS_FILE (file)); + + uri = g_file_get_uri (file); + + /* try to load the desktop file from the item cache */ + item = garcon_menu_item_cache_lookup (menu->priv->cache, uri, desktop_id); + if (item != NULL) + { + /* insert the item into the appropriate menus, if there are any */ + included_somewhere = garcon_menu_update_item (menu, item, FALSE); + included_somewhere = garcon_menu_update_item (menu, item, TRUE) || included_somewhere; + + /* unload the item if it isn't included in any menus */ + if (!included_somewhere) + { + /* remove the item from the item cache, so we are forced to reload + * it from disk the next time it becomes available */ + garcon_menu_item_cache_remove_file (menu->priv->cache, file); + } + } + + g_free (uri); +} + + + +static void garcon_menu_start_monitoring (GarconMenu *menu) { GList *lp; @@ -2610,26 +2647,7 @@ garcon_menu_app_dir_changed (GarconMenu *menu, /* determine the desktop ID for this file */ if (garcon_menu_collect_file (menu, file, NULL, NULL, &desktop_id)) { - uri = g_file_get_uri (file); - - /* try to load the desktop file from the item cache */ - item = garcon_menu_item_cache_lookup (menu->priv->cache, uri, desktop_id); - if (item != NULL) - { - /* insert the item into the appropriate menus, if there are any */ - included_somewhere = garcon_menu_update_item (menu, item, FALSE); - included_somewhere = garcon_menu_update_item (menu, item, TRUE) || included_somewhere; - - /* unload the item if it isn't included in any menus */ - if (!included_somewhere) - { - /* remove the item from the item cache, so we are forced to reload - * it from disk the next time it becomes available */ - garcon_menu_item_cache_remove_file (menu->priv->cache, file); - } - } - - g_free (uri); + garcon_menu_update_file_item (menu, desktop_id, file); g_free (desktop_id); } } @@ -2718,25 +2736,7 @@ garcon_menu_app_dir_changed (GarconMenu *menu, /* determine the next-priority desktop file with the same desktop ID */ if (garcon_menu_collect_file (menu, NULL, desktop_id, &replacement_file, NULL)) { - uri = g_file_get_uri (replacement_file); - - item = garcon_menu_item_cache_lookup (menu->priv->cache, uri, desktop_id); - if (item != NULL) - { - /* insert the item into the appropriate menus, if there are any */ - included_somewhere = garcon_menu_update_item (menu, item, FALSE); - included_somewhere = garcon_menu_update_item (menu, item, TRUE) || included_somewhere; - - /* unload the item if it isn't included in any menus */ - if (!included_somewhere) - { - /* remove the item from the item cache, so we are forced to reload - * it from disk the next time it becomes available */ - garcon_menu_item_cache_remove_file (menu->priv->cache, file); - } - } - - g_free (uri); + garcon_menu_update_item_file (menu, desktop_id, file); g_object_unref (replacement_file); } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits