=== modified file 'gnome-panel/main.c' --- gnome-panel/main.c 2008-10-31 13:51:37 +0000 +++ gnome-panel/main.c 2008-10-31 20:46:51 +0000 @@ -97,6 +104,40 @@ xstuff_init (); + /* ubuntu specifc cleanup for bug #260492 - this needs to be kept + * until the next LTS after hardy (8.04) is released + */ + GAppInfo *app, *new_app = NULL; + GConfClient *gc = gconf_client_get_default(); + GList *head, *l; + if(gconf_client_get_bool(gc, "/apps/panel/need_directory_fixup", NULL)) + { + app = g_app_info_get_default_for_type ("inode/directory", FALSE); + if(app && strcmp(g_app_info_get_id(app), "nautilus-folder-handler.desktop") != 0) + { + g_message("inode/directory points to '%s' - fixing", g_app_info_get_id(app)); + head = l = g_app_info_get_all_for_type("inode/directory"); + while(l != NULL) + { + if(strcmp(g_app_info_get_id(G_APP_INFO(l->data)), + "nautilus-folder-handler.desktop") == 0) + new_app = g_app_info_dup(l->data); + g_object_unref(G_OBJECT(l->data)); + l=g_list_next(l); + } + if(new_app) + { + g_app_info_set_as_default_for_type (new_app, "inode/directory", NULL); + g_object_unref(new_app); + } + g_list_free(head); + } + g_object_unref(app); + gconf_client_set_bool(gc, "/apps/panel/need_directory_fixup", FALSE, NULL); + } + g_object_unref(gc); + /* end of ubuntu specific code */ + gtk_main (); panel_lockdown_finalize ();