diff options
author | Federico Mena Quintero <federico@ximian.com> | 2004-03-08 22:21:47 +0000 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2004-03-08 22:21:47 +0000 |
commit | 2247fc6659fc9ffeb7d169f01d7e9c11e68f239c (patch) | |
tree | 45e5e2200eac443ec63bf8835324fdc52695e858 /gtk/gtkfilechooserdefault.c | |
parent | be4fd08c0aab27b8bc02f1328805ba0997e4b706 (diff) | |
download | gtk+-2247fc6659fc9ffeb7d169f01d7e9c11e68f239c.tar.gz |
Fixes #136105.
2004-03-08 Federico Mena Quintero <federico@ximian.com>
Fixes #136105.
* gtk/gtkfilechooserembed.h (struct _GtkFileChooserEmbedIface):
Added an ::initial_focus() method.
* gtk/gtkfilechooserembed.c
(_gtk_file_chooser_embed_delegate_iface_init): Set the
initial_focus method.
(delegate_initial_focus): Implement.
(_gtk_file_chooser_embed_initial_focus): New function.
* gtk/gtkfilechooserdialog.c
(gtk_file_chooser_dialog_constructor): Call
_gtk_file_chooser_embed_initial_focus().
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_init):
Install the ::initial_focus() handler.
(gtk_file_chooser_default_initial_focus): Implement.
Diffstat (limited to 'gtk/gtkfilechooserdefault.c')
-rw-r--r-- | gtk/gtkfilechooserdefault.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 84f6d86048..e24d3edd8a 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -274,6 +274,7 @@ static void gtk_file_chooser_default_get_resizable_hints (GtkFileCh gboolean *resize_horizontally, gboolean *resize_vertically); static gboolean gtk_file_chooser_default_should_respond (GtkFileChooserEmbed *chooser_embed); +static void gtk_file_chooser_default_initial_focus (GtkFileChooserEmbed *chooser_embed); static void location_popup_handler (GtkFileChooserDefault *impl); static void up_folder_handler (GtkFileChooserDefault *impl); @@ -496,6 +497,7 @@ gtk_file_chooser_embed_default_iface_init (GtkFileChooserEmbedIface *iface) iface->get_default_size = gtk_file_chooser_default_get_default_size; iface->get_resizable_hints = gtk_file_chooser_default_get_resizable_hints; iface->should_respond = gtk_file_chooser_default_should_respond; + iface->initial_focus = gtk_file_chooser_default_initial_focus; } static void gtk_file_chooser_default_init (GtkFileChooserDefault *impl) @@ -3561,6 +3563,30 @@ gtk_file_chooser_default_should_respond (GtkFileChooserEmbed *chooser_embed) return FALSE; } +/* Implementation for GtkFileChooserEmbed::initial_focus() */ +static void +gtk_file_chooser_default_initial_focus (GtkFileChooserEmbed *chooser_embed) +{ + GtkFileChooserDefault *impl; + GtkWidget *widget; + + impl = GTK_FILE_CHOOSER_DEFAULT (chooser_embed); + + if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN + || impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER) + widget = impl->browse_files_tree_view; + else if (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE + || impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER) + widget = impl->save_file_name_entry; + else + { + g_assert_not_reached (); + widget = NULL; + } + + gtk_widget_grab_focus (widget); +} + static void set_current_filter (GtkFileChooserDefault *impl, GtkFileFilter *filter) |