[Xfce4-commits] <xfce4-mount-plugin:master> Launch the on-mount command async to avoid blocking plugin UI

Landry Breuil noreply at xfce.org
Wed Apr 25 19:54:01 CEST 2012


Updating branch refs/heads/master
         to e8991c4032745c9060eed6567c1d3664149fb9c7 (commit)
       from c01452e04f787999876fd38761c9fbe698cabab7 (commit)

commit e8991c4032745c9060eed6567c1d3664149fb9c7
Author: Landry Breuil <landry at xfce.org>
Date:   Wed Apr 25 19:50:44 2012 +0200

    Launch the on-mount command async to avoid blocking plugin UI
    
    Move error code dialog around to differentiate the case when
    mount command itself failed from the case when it's the on-mount command

 panel-plugin/devices.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/panel-plugin/devices.c b/panel-plugin/devices.c
index 5f823b7..6de08ae 100644
--- a/panel-plugin/devices.c
+++ b/panel-plugin/devices.c
@@ -275,7 +275,12 @@ disk_mount (t_disk *pdisk, char *on_mount_cmd, char* mount_command, gboolean eje
         val = g_spawn_command_line_sync (cmd, &output, &erroutput, &exit_status, &error);
         DBG("cmd: '%s', returned %d, exit_status=%d", cmd, val, exit_status);
         if (val == FALSE || exit_status != 0)
-           goto out;
+        {
+            /* show error message if smth failed */
+            xfce_dialog_show_error (NULL, error, "%s %s %d, %s %s", _("Mount Plugin: Error executing command."),
+                _("Returned"), WEXITSTATUS(exit_status), _("error was"), erroutput);
+            goto out;
+        }
 
         if (on_mount_cmd != NULL && strlen(on_mount_cmd)!=0) {
             g_free(tmp);
@@ -284,17 +289,16 @@ disk_mount (t_disk *pdisk, char *on_mount_cmd, char* mount_command, gboolean eje
             cmd = NULL;
             deviceprintf(&tmp, on_mount_cmd, pdisk->device);
             mountpointprintf(&cmd, tmp, pdisk->mount_point);
-            val = g_spawn_command_line_sync (cmd, &output, &erroutput, &exit_status, &error);
-            DBG("cmd: '%s', returned %d, exit_status=%d", cmd, val, exit_status);
+            val = g_spawn_command_line_async (cmd, &error);
+            DBG("cmd: '%s', returned %d", cmd, val);
+            /* show error message if smth failed */
+            if (val == FALSE)
+                xfce_dialog_show_error (NULL, error, "%s", _("Mount Plugin: Error executing on-mount command."));
         }
 out:
         g_free(cmd);
         if (tmp)
             g_free(tmp);
-        /* show error message if smth failed */
-        if (val == FALSE || exit_status != 0)
-            xfce_dialog_show_error (NULL, error, "%s %s %d, %s %s", _("Mount Plugin: Error executing command."),
-                _("Returned"), WEXITSTATUS(exit_status), _("error was"), erroutput);
     }
 }
 


More information about the Xfce4-commits mailing list