[gnome-commander/gcmd-1-12] Fix a mystery bug that the 'execute' popup item does not show



commit b4086b380674700f70b745a59a95221a929d6ee5
Author: Uwe Scholz <u scholz83 gmx de>
Date:   Sat Mar 6 00:37:29 2021 +0100

    Fix a mystery bug that the 'execute' popup item does not show
    
    Also, move the execute menu entry at the top in the file popup menu

 NEWS                          |  2 +-
 doc/C/releases.xml            |  2 +-
 src/gnome-cmd-file-popmenu.cc | 13 +++++++------
 src/gnome-cmd-file-popmenu.h  |  2 +-
 4 files changed, 10 insertions(+), 9 deletions(-)
---
diff --git a/NEWS b/NEWS
index 674b47b9..973d8c78 100644
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,7 @@ New features:
  * ...
 
 Bug fixes:
- * ...
+ * Fixed issue #97 ("Execute" not shown in file popup menu for executable files)
 
 New or updated translations:
  * ...
diff --git a/doc/C/releases.xml b/doc/C/releases.xml
index bde55451..043cfaed 100644
--- a/doc/C/releases.xml
+++ b/doc/C/releases.xml
@@ -30,7 +30,7 @@
                 <para>
                     <itemizedlist>
                         <listitem>
-                            <para>...</para>
+                            <para>Fixed issue #97 ("Execute" not shown in file popup menu for executable 
files)</para>
                         </listitem>
                     </itemizedlist>
                 </para>
diff --git a/src/gnome-cmd-file-popmenu.cc b/src/gnome-cmd-file-popmenu.cc
index 5bde869d..f6a9b3f9 100644
--- a/src/gnome-cmd-file-popmenu.cc
+++ b/src/gnome-cmd-file-popmenu.cc
@@ -678,12 +678,12 @@ GtkWidget *gnome_cmd_file_popmenu_new (GnomeCmdFileList *gnomeCmdFileList)
         }
     }
 
-    // Add execute menu entry
-    add_execute_entry(uiManager, gnomeCmdFileList);
-
     // Add script action menu entries
     add_action_script_entries(uiManager, files);
 
+    // Add execute menu entry
+    add_execute_entry(uiManager, files);
+
     return GTK_WIDGET (gtk_ui_manager_get_widget (uiManager, "/FilePopup"));
 }
 
@@ -736,6 +736,8 @@ GtkType gnome_cmd_file_popmenu_get_type ()
     static const char *ui_description =
     "<ui>"
     "  <popup action='FilePopup'>"
+    "    <placeholder name='Execute'/>"
+    "    <separator/>"
     "    <placeholder name='OpenWithDefault'/>"
     "    <menu action='OpenWith'>"
     "      <placeholder name='OpenWithPlaceholder'/>"
@@ -891,11 +893,10 @@ guint add_open_with_entries(GtkUIManager *ui_manager, GnomeCmdFileList *gnomeCmd
     return newTopMenuItems;
 }
 
-void add_execute_entry(GtkUIManager *ui_manager, GnomeCmdFileList *gnomeCmdFileList)
+void add_execute_entry(GtkUIManager *ui_manager, GList *files)
 {
     static guint mergeIdExecute = 0;
     static GtkActionGroup *dynamicActionGroup = nullptr;
-    auto files = gnomeCmdFileList->get_selected_files();
     auto gnomeCmdFile = static_cast<GnomeCmdFile*> (files->data);
 
     if (mergeIdExecute != 0)
@@ -910,7 +911,7 @@ void add_execute_entry(GtkUIManager *ui_manager, GnomeCmdFileList *gnomeCmdFileL
         dynamicActionGroup = gtk_action_group_new ("executeActionGroup");
         gtk_ui_manager_insert_action_group (ui_manager, dynamicActionGroup, 0);
 
-        gtk_ui_manager_add_ui (ui_manager, mergeIdExecute, "/FilePopup/Cut", "Execute", "Execute",
+        gtk_ui_manager_add_ui (ui_manager, mergeIdExecute, "/FilePopup/Execute", "Execute", "Execute",
                                GTK_UI_MANAGER_AUTO, true);
     }
 }
diff --git a/src/gnome-cmd-file-popmenu.h b/src/gnome-cmd-file-popmenu.h
index aa29079a..64b301d6 100644
--- a/src/gnome-cmd-file-popmenu.h
+++ b/src/gnome-cmd-file-popmenu.h
@@ -56,4 +56,4 @@ GtkType gnome_cmd_file_popmenu_get_type ();
 GtkUIManager *get_file_popup_ui_manager (GnomeCmdFileList *gnomeCmdFileList);
 guint add_open_with_entries (GtkUIManager *ui_manager, GnomeCmdFileList *gnomeCmdFileList);
 guint add_action_script_entries(GtkUIManager *uiManager, GList *files);
-void add_execute_entry(GtkUIManager *ui_manager, GnomeCmdFileList *gnomeCmdFileList);
+void add_execute_entry(GtkUIManager *ui_manager, GList *files);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]