diff options
author | Alexander Larsson <alexl@redhat.com> | 2004-01-20 16:50:46 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2004-01-20 16:50:46 +0000 |
commit | 07801c3e387afaeff8dc27f5850e8c3b7326f571 (patch) | |
tree | f71c51cd37b3d83a3e38bd657b300f39ccabb3c1 /libnautilus-private | |
parent | 8e16a362dea650b62388e3894e1ba77862b3513c (diff) | |
download | nautilus-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.c | 2 | ||||
-rw-r--r-- | libnautilus-private/nautilus-program-choosing.c | 56 |
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 |