Enable gtk_run() (so 'lxpanelctl run' as well) without libmenu-cache.
authorAndriy Grytsenko <andrej@rep.kiev.ua>
Tue, 19 Aug 2014 14:20:28 +0000 (17:20 +0300)
committerAndriy Grytsenko <andrej@rep.kiev.ua>
Tue, 19 Aug 2014 14:20:28 +0000 (17:20 +0300)
It will just lack completion of course.

src/Makefile.am
src/configurator.c
src/gtk-run.c
src/panel.c

index 95c299b..9274085 100644 (file)
@@ -16,11 +16,12 @@ lxpanel_CFLAGS = \
 BUILTIN_PLUGINS = $(top_builddir)/plugins/libbuiltin_plugins.a
 
 if ENABLE_MENU_CACHE
-MENU_SOURCES = gtk-run.c menu-policy.h menu-policy.c
+MENU_SOURCES = menu-policy.h menu-policy.c
 endif
 
 lxpanel_SOURCES = \
        misc.c \
+       gtk-run.c \
        bg.c \
        configurator.c \
        dbg.c \
index 0454693..9cf067f 100644 (file)
@@ -47,9 +47,7 @@ static void save_global_config();
 
 Command commands[] = {
     //{ "configure", N_("Preferences"), configure },
-#ifndef DISABLE_MENU
     { "run", N_("Run"), gtk_run },
-#endif
     { "restart", N_("Restart"), restart },
     { "logout", N_("Logout"), logout },
     { NULL, NULL },
index 4115955..67425c7 100644 (file)
 #include <unistd.h>
 
 #include "misc.h"
+#ifndef DISABLE_MENU
 #include <menu-cache.h>
+#endif
 #include <libfm/fm-gtk.h>
 
 static GtkWidget* win = NULL; /* the run dialog */
+#ifndef DISABLE_MENU
 static MenuCache* menu_cache = NULL;
 static GSList* app_list = NULL; /* all known apps in menu cache */
 static gpointer reload_notify_id = NULL;
+#endif
 
 typedef struct _ThreadData
 {
@@ -41,6 +45,7 @@ typedef struct _ThreadData
 
 static ThreadData* thread_data = NULL; /* thread data used to load availble programs in PATH */
 
+#ifndef DISABLE_MENU
 static MenuCacheApp* match_app_by_exec(const char* exec)
 {
     GSList* l;
@@ -140,6 +145,7 @@ static MenuCacheApp* match_app_by_exec(const char* exec)
     g_free(exec_path);
     return ret;
 }
+#endif
 
 static void setup_auto_complete_with_data(ThreadData* data)
 {
@@ -239,6 +245,7 @@ static void setup_auto_complete( GtkEntry* entry )
     }
 }
 
+#ifndef DISABLE_MENU
 static void reload_apps(MenuCache* cache, gpointer user_data)
 {
     g_debug("reload apps!");
@@ -249,6 +256,7 @@ static void reload_apps(MenuCache* cache, gpointer user_data)
     }
     app_list = (GSList*)menu_cache_list_all_apps(cache);
 }
+#endif
 
 static void on_response( GtkDialog* dlg, gint response, gpointer user_data )
 {
@@ -269,6 +277,7 @@ static void on_response( GtkDialog* dlg, gint response, gpointer user_data )
     gtk_widget_destroy( (GtkWidget*)dlg );
     win = NULL;
 
+#ifndef DISABLE_MENU
     /* free app list */
     g_slist_foreach(app_list, (GFunc)menu_cache_item_unref, NULL);
     g_slist_free(app_list);
@@ -279,8 +288,10 @@ static void on_response( GtkDialog* dlg, gint response, gpointer user_data )
     reload_notify_id = NULL;
     menu_cache_unref(menu_cache);
     menu_cache = NULL;
+#endif
 }
 
+#ifndef DISABLE_MENU
 static void on_entry_changed( GtkEntry* entry, GtkImage* img )
 {
     const char* str = gtk_entry_get_text(entry);
@@ -307,6 +318,7 @@ static void on_entry_changed( GtkEntry* entry, GtkImage* img )
         gtk_image_set_from_stock(img, GTK_STOCK_EXECUTE, GTK_ICON_SIZE_DIALOG);
     }
 }
+#endif
 
 static void activate_window(GtkWindow* toplevel_window)
 {
@@ -389,6 +401,7 @@ void gtk_run()
         setup_auto_complete( (GtkEntry*)entry );
         gtk_widget_show(win);
 
+#ifndef DISABLE_MENU
         g_signal_connect(entry ,"changed", G_CALLBACK(on_entry_changed), img);
 
         /* get all apps */
@@ -399,6 +412,7 @@ void gtk_run()
             app_list = (GSList*)menu_cache_list_all_apps(menu_cache);
             reload_notify_id = menu_cache_add_reload_notify(menu_cache, reload_apps, NULL);
         }
+#endif
     }
 
     activate_window(GTK_WINDOW(win));
index 4e1d0a3..889d70e 100644 (file)
@@ -321,11 +321,9 @@ static void process_client_msg ( XClientMessageEvent* ev )
             break;
         }
 #endif
-#ifndef DISABLE_MENU
         case LXPANEL_CMD_RUN:
             gtk_run();
             break;
-#endif
         case LXPANEL_CMD_CONFIG:
             {
             LXPanel * p = ((all_panels != NULL) ? all_panels->data : NULL);