Updating branch refs/heads/master
         to 1b6a226a81e0917c2a71bfdf3e5c4eb6b14d5658 (commit)
       from f929d83f372472fee824ac156a59019240454430 (commit)

commit 1b6a226a81e0917c2a71bfdf3e5c4eb6b14d5658
Author: Mike Massonnet <[email protected]>
Date:   Mon May 24 22:39:19 2010 +0200

    Display only installed programs in the “Execute” menu

 src/process-window.c |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/process-window.c b/src/process-window.c
index f1e7687..37c8d87 100644
--- a/src/process-window.c
+++ b/src/process-window.c
@@ -191,19 +191,39 @@ menu_execute_append_item (GtkMenu *menu, gchar *title, 
gchar *command, gchar *ic
        g_signal_connect_swapped (mi, "activate", G_CALLBACK (execute_command), 
command);
 }
 
+static gboolean
+program_exists (gchar *program)
+{
+       gchar *program_path = g_find_program_in_path (program);
+       if (program_path == NULL)
+               return FALSE;
+       g_free (program_path);
+       return TRUE;
+}
+
 static void
 show_menu_execute_task (XtmProcessWindow *window)
 {
-       // TODO check if xfrun4, xfce4-appfinder, etc are installed and pull 
them in the menu
        static GtkWidget *menu = NULL;
 
        if (menu == NULL)
        {
                menu = gtk_menu_new ();
-               menu_execute_append_item (GTK_MENU (menu), _("Run Program..."), 
"xfrun4", "system-run");
-               menu_execute_append_item (GTK_MENU (menu), _("Application 
Finder"), "xfce4-appfinder", "xfce4-appfinder");
-               menu_execute_append_item (GTK_MENU (menu), _("Terminal 
emulator"), "exo-open --launch TerminalEmulator", "terminal");
-               menu_execute_append_item (GTK_MENU (menu), _("XTerm"), "xterm 
-fg grey -bg black", "terminal");
+               /* Find a runner program */
+               if (program_exists ("xfrun4"))
+                       menu_execute_append_item (GTK_MENU (menu), _("Run 
Program..."), "xfrun4", "system-run");
+               else if (program_exists ("gmrun"))
+                       menu_execute_append_item (GTK_MENU (menu), _("Run 
Program..."), "gmrun", "system-run");
+               else if (program_exists ("gexec"))
+                       menu_execute_append_item (GTK_MENU (menu), _("Run 
Program..."), "gexec", "system-run");
+               /* Find an applications list program */
+               if (program_exists ("xfce4-appfinder"))
+                       menu_execute_append_item (GTK_MENU (menu), 
_("Application Finder"), "xfce4-appfinder", "xfce4-appfinder");
+               /* Find a terminal emulator */
+               if (program_exists ("exo-open"))
+                       menu_execute_append_item (GTK_MENU (menu), _("Terminal 
emulator"), "exo-open --launch TerminalEmulator", "terminal");
+               else if (program_exists ("xterm"))
+                       menu_execute_append_item (GTK_MENU (menu), _("XTerm"), 
"xterm -fg grey -bg black", "terminal");
                gtk_widget_show_all (menu);
        }
 
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to