Author: kelnos Date: 2007-12-27 00:49:02 +0000 (Thu, 27 Dec 2007) New Revision: 26508
Modified: xfdesktop/trunk/configure.ac.in xfdesktop/trunk/modules/menu/desktop-menu.c Log: fix file monitoring; don't watch directories that don't exist Modified: xfdesktop/trunk/configure.ac.in =================================================================== --- xfdesktop/trunk/configure.ac.in 2007-12-27 00:13:05 UTC (rev 26507) +++ xfdesktop/trunk/configure.ac.in 2007-12-27 00:49:02 UTC (rev 26508) @@ -13,7 +13,7 @@ dnl minimum required versions m4_define([gtk_minimum_version], [2.6.0]) -m4_define([libxfce4util_minimum_version], [4.5.0svn-r26500]) +m4_define([libxfce4util_minimum_version], [4.5.0svn-r26507]) m4_define([xfce_minimum_version], [4.4.1]) m4_define([xfce4menu_minimum_version], [0.1.0svn-r26163]) m4_define([exo_minimum_version], [0.3.2]) Modified: xfdesktop/trunk/modules/menu/desktop-menu.c =================================================================== --- xfdesktop/trunk/modules/menu/desktop-menu.c 2007-12-27 00:13:05 UTC (rev 26507) +++ xfdesktop/trunk/modules/menu/desktop-menu.c 2007-12-27 00:49:02 UTC (rev 26508) @@ -117,7 +117,13 @@ XfceDesktopMenu *desktop_menu = user_data; XfceMenuItemCache *cache = xfce_menu_item_cache_get_default(); - TRACE("entering (%s)", thunar_vfs_path_get_name(event_path)); +#ifdef DEBUG + { + gchar buf[1024]; + thunar_vfs_path_to_string(event_path, buf, sizeof(buf), NULL); + TRACE("entering (%d,%s)", event, buf); + } +#endif xfce_menu_item_cache_invalidate(cache); _generate_menu(desktop_menu, FALSE); @@ -157,19 +163,21 @@ { XfceDesktopMenu *desktop_menu = user_data; ThunarVfsPath *path; - ThunarVfsMonitor *monitor = thunar_vfs_monitor_get_default(); ThunarVfsMonitorHandle *mhandle = NULL; + if(!g_file_test(filename, G_FILE_TEST_IS_DIR)) + return NULL; + path = thunar_vfs_path_new(filename, NULL); if(path) { + ThunarVfsMonitor *monitor = thunar_vfs_monitor_get_default(); mhandle = thunar_vfs_monitor_add_directory(monitor, path, desktop_menu_something_changed, desktop_menu); thunar_vfs_path_unref(path); + g_object_unref(G_OBJECT(monitor)); } - g_object_unref(G_OBJECT(monitor)); - TRACE("exiting (%s), returning 0x%p", filename, mhandle); return mhandle; @@ -296,14 +304,12 @@ xfce_menu_init("XFCE"); #endif - if(g_file_test(desktop_menu->filename, G_FILE_TEST_EXISTS)) { - desktop_menu->xfce_menu = xfce_menu_new(desktop_menu->filename, &error); - if(!desktop_menu->xfce_menu) { - g_critical("Unable to create XfceMenu from file '%s': %s", - desktop_menu->filename, error->message); - g_error_free(error); - return FALSE; - } + desktop_menu->xfce_menu = xfce_menu_new(desktop_menu->filename, &error); + if(!desktop_menu->xfce_menu) { + g_critical("Unable to create XfceMenu from file '%s': %s", + desktop_menu->filename, error->message); + g_error_free(error); + return FALSE; } return ret; @@ -312,8 +318,10 @@ static void _xfce_desktop_menu_free_menudata(XfceDesktopMenu *desktop_menu) { - if(desktop_menu->xfce_menu) + if(desktop_menu->xfce_menu) { g_object_unref(G_OBJECT(desktop_menu->xfce_menu)); + desktop_menu->xfce_menu = NULL; + } desktop_menu->xfce_menu = NULL; } @@ -336,7 +344,7 @@ { #ifdef HAVE_THUNAR_VFS static XfceMenuMonitorVTable monitor_vtable = { - NULL, //desktop_menu_xfce_menu_monitor_file, + NULL, /*desktop_menu_xfce_menu_monitor_file,*/ desktop_menu_xfce_menu_monitor_directory, desktop_menu_xfce_menu_remove_monitor }; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits