[Xfce4-commits] r26508 - in xfdesktop/trunk: . modules/menu
Brian Tarricone
kelnos at xfce.org
Thu Dec 27 01:49:02 CET 2007
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
};
More information about the Xfce4-commits
mailing list