Index: nautilus/ChangeLog
===================================================================
RCS file: /export/cvs/gnome-2.0/nautilus/ChangeLog,v
retrieving revision 1.5998
diff -p -u -5 -r1.5998 ChangeLog
--- nautilus/ChangeLog	2003/12/04 03:39:34	1.5998
+++ nautilus/ChangeLog	2003/12/08 11:11:43
@@ -1,5 +1,15 @@
+2003-12-08  Balamurali Viswanathani <balamurali.viswanathan@wipro.com>
+
+	* libnautilus-private/nautilus-program-chooser.c 
+	(nautilus_program_chooser_instance_init):
+	Change the name of the button from Choose to Ok Fixes #124651
+
+	* libnautilus-private/nautilus-program-choosing.c
+	(nautilus_choose_component_for_file):
+	Make the dialog non modal. Fixes #85669
+
 2003-12-04  Sivaiah Nallagatla  <snallagatla@novell.com>
  
         * src/file-manager/fm-list-view.c(fm_list_view_remove_file): Place  the focus on next item
         when an item is deleted from list view.
  
Index: nautilus/libnautilus-private/nautilus-program-chooser.c
===================================================================
RCS file: /export/cvs/gnome-2.0/nautilus/libnautilus-private/nautilus-program-chooser.c,v
retrieving revision 1.85
diff -p -u -5 -r1.85 nautilus-program-chooser.c
--- nautilus/libnautilus-private/nautilus-program-chooser.c	2003/06/08 05:09:36	1.85
+++ nautilus/libnautilus-private/nautilus-program-chooser.c	2003/12/08 11:11:47
@@ -1347,11 +1347,11 @@ nautilus_program_chooser_instance_init (
 
 	program_chooser->details->cancel_button = gtk_dialog_add_button (GTK_DIALOG (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);
 
 	gtk_container_set_border_width (GTK_CONTAINER (program_chooser), GNOME_PAD);
Index: nautilus/libnautilus-private/nautilus-program-choosing.c
===================================================================
RCS file: /export/cvs/gnome-2.0/nautilus/libnautilus-private/nautilus-program-choosing.c,v
retrieving revision 1.67
diff -p -u -5 -r1.67 nautilus-program-choosing.c
--- nautilus/libnautilus-private/nautilus-program-choosing.c	2003/06/11 11:05:24	1.67
+++ nautilus/libnautilus-private/nautilus-program-choosing.c	2003/12/08 11:11:47
@@ -167,10 +167,40 @@ set_up_program_chooser (NautilusFile *fi
 	}
 
 	return dialog;	
 }
 
+static void
+dialog_response (GtkDialog *dialog,
+		 int response_id,
+		 ChooseComponentCallbackData *choose_data)
+{
+	NautilusViewIdentifier *identifier;
+
+	identifier = NULL;
+
+	switch (response_id) {
+	case GTK_RESPONSE_OK:
+		identifier = nautilus_program_chooser_get_component (NAUTILUS_PROGRAM_CHOOSER (dialog));		
+		break;
+
+	default:
+		break;
+	}
+
+	(* choose_data->callback) (identifier, 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_component_destroy (choose_data);
+}
+	
 /**
  * nautilus_choose_component_for_file:
  * 
  * Lets user choose a component with which to view a given file.
  * 
@@ -205,33 +235,26 @@ choose_component_callback (NautilusFile 
 	dialog = NULL;
 	if (nautilus_mime_has_any_components_for_file_extended (file,
 	    "NOT nautilus:property_page_name.defined()")) {
 		dialog = set_up_program_chooser (file, GNOME_VFS_MIME_ACTION_TYPE_COMPONENT,
 						 choose_data->parent_window);
-		if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
-			identifier = nautilus_program_chooser_get_component (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_COMPONENT,
 								  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) (identifier, choose_data->callback_data);
-
-	if (dialog != NULL) {
-		/* Destroy only after callback, since view identifier 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) (identifier, choose_data->callback_data);
 
-	choose_component_destroy (choose_data);
+		choose_component_destroy (choose_data);
+	}
 }
 
 void
 nautilus_choose_component_for_file (NautilusFile *file,
 				    GtkWindow *parent_window,
