summaryrefslogtreecommitdiff
path: root/libnautilus-private
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2004-01-20 16:50:46 +0000
committerAlexander Larsson <alexl@src.gnome.org>2004-01-20 16:50:46 +0000
commit07801c3e387afaeff8dc27f5850e8c3b7326f571 (patch)
treef71c51cd37b3d83a3e38bd657b300f39ccabb3c1 /libnautilus-private
parent8e16a362dea650b62388e3894e1ba77862b3513c (diff)
downloadnautilus-07801c3e387afaeff8dc27f5850e8c3b7326f571.tar.gz
Choose -> OK Make open with other app dialog non-modal.
2004-01-20 Alexander Larsson <alexl@redhat.com> * libnautilus-private/nautilus-program-chooser.c: (nautilus_program_chooser_instance_init): Choose -> OK * libnautilus-private/nautilus-program-choosing.c: (dialog_response), (choose_application_callback): Make open with other app dialog non-modal. * src/file-manager/fm-directory-view.c: (reset_bonobo_open_with_menu), (real_merge_menus), (can_use_component_for_file): * src/file-manager/nautilus-directory-view-ui.xml: Remove open with views from menu
Diffstat (limited to 'libnautilus-private')
-rw-r--r--libnautilus-private/nautilus-program-chooser.c2
-rw-r--r--libnautilus-private/nautilus-program-choosing.c56
2 files changed, 41 insertions, 17 deletions
diff --git a/libnautilus-private/nautilus-program-chooser.c b/libnautilus-private/nautilus-program-chooser.c
index 2fe274d6c..6fad8883f 100644
--- a/libnautilus-private/nautilus-program-chooser.c
+++ b/libnautilus-private/nautilus-program-chooser.c
@@ -1338,7 +1338,7 @@ nautilus_program_chooser_instance_init (NautilusProgramChooser *program_chooser)
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
gtk_dialog_add_button (GTK_DIALOG (program_chooser),
- _("C_hoose"), GTK_RESPONSE_OK);
+ GTK_STOCK_OK, GTK_RESPONSE_OK);
program_chooser->details->done_button = gtk_dialog_add_button (GTK_DIALOG (program_chooser),
_("Done"), GTK_RESPONSE_CANCEL);
diff --git a/libnautilus-private/nautilus-program-choosing.c b/libnautilus-private/nautilus-program-choosing.c
index 900ce1806..23430b1a1 100644
--- a/libnautilus-private/nautilus-program-choosing.c
+++ b/libnautilus-private/nautilus-program-choosing.c
@@ -309,6 +309,37 @@ nautilus_cancel_choose_component_for_file (NautilusFile *file,
choose_component_destroy (choose_data);
}
+
+static void
+dialog_response (GtkDialog *dialog,
+ int response_id,
+ ChooseApplicationCallbackData *choose_data)
+{
+ GnomeVFSMimeApplication *application;
+
+ application = NULL;
+
+ switch (response_id) {
+ case GTK_RESPONSE_OK:
+ application = nautilus_program_chooser_get_application (NAUTILUS_PROGRAM_CHOOSER (dialog));
+ break;
+
+ default:
+ break;
+ }
+
+ (* choose_data->callback) (application, choose_data->callback_data);
+
+ if (dialog != NULL) {
+ /* Destroy only after callback, since view identifier
+ * will be destroyed too.
+ */
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+ }
+
+ choose_application_destroy (choose_data);
+}
+
/**
* nautilus_choose_application_for_file:
*
@@ -346,29 +377,22 @@ choose_application_callback (NautilusFile *file,
if (nautilus_mime_has_any_applications_for_file_type (file)) {
dialog = set_up_program_chooser (file, GNOME_VFS_MIME_ACTION_TYPE_APPLICATION,
choose_data->parent_window);
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- application = nautilus_program_chooser_get_application (NAUTILUS_PROGRAM_CHOOSER (dialog));
- }
+ g_signal_connect (G_OBJECT (dialog), "response",
+ G_CALLBACK (dialog_response), choose_data);
+ gtk_widget_show (dialog);
} else {
nautilus_program_chooser_show_no_choices_message (GNOME_VFS_MIME_ACTION_TYPE_APPLICATION,
file,
choose_data->parent_window);
- }
-
- /* Call callback even if identifier is NULL, so caller can
- * free callback_data if necessary and present some cancel
- * UI if desired.
- */
- (* choose_data->callback) (application, choose_data->callback_data);
- if (dialog != NULL) {
- /* Destroy only after callback, since application struct will
- * be destroyed too.
+ /* Call callback even if identifier is NULL, so caller can
+ * free callback_data if necessary and present some cancel
+ * UI if desired.
*/
- gtk_widget_destroy (GTK_WIDGET (dialog));
+ (* choose_data->callback) (application, choose_data->callback_data);
+
+ choose_application_destroy (choose_data);
}
-
- choose_application_destroy (choose_data);
}
void