Added box-merge option for pnd_container, and added ability for mmenu to scan both
authorskeezix <skeezix@flotsam-vm.(none)>
Mon, 15 Mar 2010 20:15:42 +0000 (16:15 -0400)
committerskeezix <skeezix@flotsam-vm.(none)>
Mon, 15 Mar 2010 20:15:42 +0000 (16:15 -0400)
menu and desktop application searchpaths

include/pnd_container.h
lib/pnd_container.c
minimenu/mmcat.c
minimenu/mmenu.c

index e16381d..d1c374f 100644 (file)
@@ -44,6 +44,9 @@ void *pnd_box_allocinsert ( pnd_box_handle box, char *key, unsigned int size );
  */
 void *pnd_box_find_by_key ( pnd_box_handle box, char *key );
 
+/* merge two box lists */
+unsigned char pnd_box_append ( pnd_box_handle box, pnd_box_handle append );
+
 /* should the user want to walk around the container, a couple basic functions are
  * provided.
  */
index bf07a20..e08080a 100644 (file)
@@ -175,3 +175,21 @@ unsigned int pnd_box_get_size ( pnd_box_handle box ) {
 
   return ( count );
 }
+
+unsigned char pnd_box_append ( pnd_box_handle box, pnd_box_handle append ) {
+  pnd_box_t *pbox = (pnd_box_t*) box;
+  pnd_box_t *pappend = (pnd_box_t*) append;
+
+  if ( pbox -> head ) {
+    pnd_box_node_t *n = pbox -> head;
+    while ( n -> next ) {
+      n = n -> next;
+    }
+    // by now, n -> next == NULL
+    n -> next = pappend -> head;
+  } else {
+    pbox -> head = pappend -> head;
+  }
+
+  return ( 1 );
+}
index d09cf0f..eb63ad5 100644 (file)
@@ -153,5 +153,7 @@ void category_freeall ( void ) {
 
   } // for
 
+  g_categorycount = 0;
+
   return;
 }
index 04a03ec..aadac02 100644 (file)
@@ -295,8 +295,16 @@ void applications_scan ( void ) {
   ui_discoverscreen ( 1 /* clear screen */ );
 
   // determine current app list, cache icons
-  pnd_log ( pndn_debug, "Looking for pnd applications here: %s\n", pnd_conf_get_as_char ( g_desktopconf, "desktop.searchpath" ) );
-  g_active_apps = pnd_disco_search ( pnd_conf_get_as_char ( g_desktopconf, "desktop.searchpath" ), NULL ); // ignore overrides for now
+  // - ignore overrides for now
+  pnd_log ( pndn_debug, "Looking for pnd applications here: %s\n",
+           pnd_conf_get_as_char ( g_desktopconf, "desktop.searchpath" ) );
+  g_active_apps = pnd_disco_search ( pnd_conf_get_as_char ( g_desktopconf, "desktop.searchpath" ), NULL );
+  pnd_log ( pndn_debug, "Looking for pnd applications here: %s\n",
+           pnd_conf_get_as_char ( g_desktopconf, "menu.searchpath" ) );
+  pnd_box_handle menu_apps = pnd_disco_search ( pnd_conf_get_as_char ( g_desktopconf, "menu.searchpath" ), NULL );
+
+  pnd_box_append ( g_active_apps, menu_apps );
+
   g_active_appcount = pnd_box_get_size ( g_active_apps );
 
   unsigned char maxwidth, maxheight;