- Fixed a bug causing unnecessary menu cache reload and related issues with LXDE launch menu

- Bump PORTREVISION
This commit is contained in:
Kris Moore 2011-03-17 15:14:56 +00:00
parent b4c88ee7c5
commit ba4bdeed25
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=271119
2 changed files with 33 additions and 0 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= menu-cache
PORTVERSION= 0.3.2
PORTREVISION= 1
CATEGORIES= x11
MASTER_SITES= SF/lxde/menu-cache/menu-cache%20${PORTVERSION}/

View File

@ -0,0 +1,32 @@
--- menu-cache-daemon/menu-cached.c.o 2011-03-17 10:58:03.876822788 -0400
+++ menu-cache-daemon/menu-cached.c 2011-03-17 10:58:49.355824755 -0400
@@ -341,6 +341,29 @@
GFileMonitorEvent evt, Cache* cache )
{
/* DEBUG("file %s is changed (%d).", g_file_get_path(gf), evt); */
+
+ if ( evt == G_FILE_MONITOR_EVENT_DELETED )
+ {
+ int idx;
+ /* dirty hack: get index of the monitor in array */
+ for(idx = 0; idx < cache->n_files; ++idx)
+ {
+ if(mon == cache->mons[idx])
+ break;
+ }
+
+ /* Check if this file or directory was already removed from the cache */
+ char* changed_file = g_file_get_path(gf);
+ char* dir_path = cache->files[idx]+1;
+ int len = strlen(dir_path);
+ char* base_name = changed_file + len + 1;
+ gboolean in_cache = is_desktop_file_in_cache(cache, idx, base_name);
+ if( ! in_cache ) { /* Means this file was already deleted, no need to refresh cache */
+ DEBUG("files are changed, but no re-generation is needed.");
+ return;
+ }
+ }
+
/* if( mon != cache->cache_mon ) */
{
/* Optimization: Some files in the dir are changed, but it