- dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", buf);
- g_signal_connect(dialog, "response", >k_main_quit, NULL);
- gtk_widget_show_all(dialog);
- }
- else
- gtk_main_quit();
- }
- else
+ if(!gtk_tree_model_get_iter(model, &iter, path))
+ return;
+
+ gtk_tree_model_get(model, &iter, 1, &device, -1);
+ ret = toggle_device(device, output, sizeof(output));
+ if(ret)
+ {
+ GtkWidget *dialog;
+
+ /* Pmount terminated with nonzero status or a signal. Display an
+ error to the user. */
+ dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", output);
+ g_signal_connect(dialog, "response", >k_main_quit, NULL);
+ gtk_widget_show_all(dialog);
+ return;
+ }
+
+ gtk_main_quit();
+
+ if(post_mount_command && device->mounted)
+ {
+ char workdir[256];
+ int len;
+ len = snprintf(workdir, sizeof(workdir), "/media/%s", device->label);
+ if(len<(int)sizeof(workdir))