gtk+ r19937 - in trunk: . gtk



Author: federico
Date: Wed Mar 26 20:22:50 2008
New Revision: 19937
URL: http://svn.gnome.org/viewvc/gtk+?rev=19937&view=rev

Log:
Make 'Ok' work for the file chooser entry
2008-03-26  Federico Mena Quintero  <federico novell com>

	* gtk/gtkfilechooserentry.c (commit_completion_and_refresh): New
	helper function; factored out from the functions that commit the
	current suggested autocompletion and that refresh the entry's paths.
	(gtk_file_chooser_entry_activate): Use commit_completion_and_refresh().
	(_gtk_file_chooser_entry_get_file_part): Likewise.
	(_gtk_file_chooser_entry_get_current_folder): Likewise.  This
	makes the entry have the correct paths when *not* using any form
	of completion (and makes the file chooser work when clicking the
	OK button).

Signed-off-by: Federico Mena Quintero <federico gnu org>


Modified:
   trunk/ChangeLog
   trunk/gtk/gtkfilechooserentry.c

Modified: trunk/gtk/gtkfilechooserentry.c
==============================================================================
--- trunk/gtk/gtkfilechooserentry.c	(original)
+++ trunk/gtk/gtkfilechooserentry.c	Wed Mar 26 20:22:50 2008
@@ -1165,10 +1165,8 @@
 }
 
 static void
-gtk_file_chooser_entry_activate (GtkEntry *entry)
+commit_completion_and_refresh (GtkFileChooserEntry *chooser_entry)
 {
-  GtkFileChooserEntry *chooser_entry = GTK_FILE_CHOOSER_ENTRY (entry);
-
   if (chooser_entry->has_completion)
     {
       gtk_editable_set_position (GTK_EDITABLE (entry),
@@ -1176,7 +1174,14 @@
     }
 
   refresh_current_folder_and_file_part (chooser_entry, REFRESH_WHOLE_TEXT);
+}
+
+static void
+gtk_file_chooser_entry_activate (GtkEntry *entry)
+{
+  GtkFileChooserEntry *chooser_entry = GTK_FILE_CHOOSER_ENTRY (entry);
 
+  commit_completion_and_refresh (chooser_entry);
   GTK_ENTRY_CLASS (_gtk_file_chooser_entry_parent_class)->activate (entry);
 }
 
@@ -1663,11 +1668,7 @@
 const GtkFilePath *
 _gtk_file_chooser_entry_get_current_folder (GtkFileChooserEntry *chooser_entry)
 {
-  if (chooser_entry->has_completion)
-    {
-      gtk_editable_set_position (GTK_EDITABLE (chooser_entry),
-				 GTK_ENTRY (chooser_entry)->text_length);
-    }
+  commit_completion_and_refresh (chooser_entry);
   return chooser_entry->current_folder_path;
 }
 
@@ -1686,14 +1687,7 @@
 const gchar *
 _gtk_file_chooser_entry_get_file_part (GtkFileChooserEntry *chooser_entry)
 {
-  if (chooser_entry->has_completion)
-    {
-      gtk_editable_set_position (GTK_EDITABLE (chooser_entry),
-				 GTK_ENTRY (chooser_entry)->text_length);
-    }
-
-  refresh_current_folder_and_file_part (chooser_entry, REFRESH_WHOLE_TEXT);
-
+  commit_completion_and_refresh (chooser_entry);
   return chooser_entry->file_part;
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]