summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog21
-rw-r--r--ChangeLog.pre-2-1021
-rw-r--r--ChangeLog.pre-2-421
-rw-r--r--ChangeLog.pre-2-621
-rw-r--r--ChangeLog.pre-2-821
-rw-r--r--gtk/gtkfilechooserdefault.c26
-rw-r--r--gtk/gtkfilechooserdialog.c2
-rw-r--r--gtk/gtkfilechooserembed.c16
-rw-r--r--gtk/gtkfilechooserembed.h4
9 files changed, 153 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1e9420462b..0dba3d3259 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,26 @@
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.
+
+2004-03-08 Federico Mena Quintero <federico@ximian.com>
+
* gtk/gtkfilechooserdefault.c (update_from_entry): Return a
boolean success code.
(location_popup_handler): Refocus the file chooser if appropriate.
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 1e9420462b..0dba3d3259 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,5 +1,26 @@
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.
+
+2004-03-08 Federico Mena Quintero <federico@ximian.com>
+
* gtk/gtkfilechooserdefault.c (update_from_entry): Return a
boolean success code.
(location_popup_handler): Refocus the file chooser if appropriate.
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 1e9420462b..0dba3d3259 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,5 +1,26 @@
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.
+
+2004-03-08 Federico Mena Quintero <federico@ximian.com>
+
* gtk/gtkfilechooserdefault.c (update_from_entry): Return a
boolean success code.
(location_popup_handler): Refocus the file chooser if appropriate.
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 1e9420462b..0dba3d3259 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,5 +1,26 @@
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.
+
+2004-03-08 Federico Mena Quintero <federico@ximian.com>
+
* gtk/gtkfilechooserdefault.c (update_from_entry): Return a
boolean success code.
(location_popup_handler): Refocus the file chooser if appropriate.
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 1e9420462b..0dba3d3259 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,5 +1,26 @@
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.
+
+2004-03-08 Federico Mena Quintero <federico@ximian.com>
+
* gtk/gtkfilechooserdefault.c (update_from_entry): Return a
boolean success code.
(location_popup_handler): Refocus the file chooser if appropriate.
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)
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
index 2835b062e7..14f4b8b90b 100644
--- a/gtk/gtkfilechooserdialog.c
+++ b/gtk/gtkfilechooserdialog.c
@@ -331,6 +331,8 @@ gtk_file_chooser_dialog_constructor (GType type,
else
priv->widget = g_object_new (GTK_TYPE_FILE_CHOOSER_WIDGET, NULL);
+ _gtk_file_chooser_embed_initial_focus (GTK_FILE_CHOOSER_EMBED (priv->widget));
+
g_signal_connect (priv->widget, "file-activated",
G_CALLBACK (file_chooser_widget_file_activated), object);
g_signal_connect (priv->widget, "default-size-changed",
diff --git a/gtk/gtkfilechooserembed.c b/gtk/gtkfilechooserembed.c
index 0705ff8f41..3e3b625032 100644
--- a/gtk/gtkfilechooserembed.c
+++ b/gtk/gtkfilechooserembed.c
@@ -10,6 +10,7 @@ static void delegate_get_resizable_hints (GtkFileChooserEmbed *chooser_embe
gboolean *resize_horizontally,
gboolean *resize_vertically);
static gboolean delegate_should_respond (GtkFileChooserEmbed *chooser_embed);
+static void delegate_initial_focus (GtkFileChooserEmbed *chooser_embed);
static void delegate_default_size_changed (GtkFileChooserEmbed *chooser_embed,
gpointer data);
@@ -34,6 +35,7 @@ _gtk_file_chooser_embed_delegate_iface_init (GtkFileChooserEmbedIface *iface)
iface->get_default_size = delegate_get_default_size;
iface->get_resizable_hints = delegate_get_resizable_hints;
iface->should_respond = delegate_should_respond;
+ iface->initial_focus = delegate_initial_focus;
}
/**
@@ -84,6 +86,12 @@ delegate_should_respond (GtkFileChooserEmbed *chooser_embed)
}
static void
+delegate_initial_focus (GtkFileChooserEmbed *chooser_embed)
+{
+ return _gtk_file_chooser_embed_initial_focus (get_delegate (chooser_embed));
+}
+
+static void
delegate_default_size_changed (GtkFileChooserEmbed *chooser_embed,
gpointer data)
{
@@ -153,6 +161,14 @@ _gtk_file_chooser_embed_should_respond (GtkFileChooserEmbed *chooser_embed)
}
void
+_gtk_file_chooser_embed_initial_focus (GtkFileChooserEmbed *chooser_embed)
+{
+ g_return_if_fail (GTK_IS_FILE_CHOOSER_EMBED (chooser_embed));
+
+ GTK_FILE_CHOOSER_EMBED_GET_IFACE (chooser_embed)->initial_focus (chooser_embed);
+}
+
+void
_gtk_file_chooser_embed_get_resizable_hints (GtkFileChooserEmbed *chooser_embed,
gboolean *resize_horizontally,
gboolean *resize_vertically)
diff --git a/gtk/gtkfilechooserembed.h b/gtk/gtkfilechooserembed.h
index 7c6d6bb31e..4a02e947af 100644
--- a/gtk/gtkfilechooserembed.h
+++ b/gtk/gtkfilechooserembed.h
@@ -48,6 +48,8 @@ struct _GtkFileChooserEmbedIface
gboolean *resize_vertically);
gboolean (*should_respond) (GtkFileChooserEmbed *chooser_embed);
+
+ void (*initial_focus) (GtkFileChooserEmbed *chooser_embed);
/* Signals
*/
void (*default_size_changed) (GtkFileChooserEmbed *chooser_embed);
@@ -64,6 +66,8 @@ void _gtk_file_chooser_embed_get_resizable_hints (GtkFileChooserEmbed *chooser_
gboolean _gtk_file_chooser_embed_should_respond (GtkFileChooserEmbed *chooser_embed);
+void _gtk_file_chooser_embed_initial_focus (GtkFileChooserEmbed *chooser_embed);
+
void _gtk_file_chooser_embed_delegate_iface_init (GtkFileChooserEmbedIface *iface);
void _gtk_file_chooser_embed_set_delegate (GtkFileChooserEmbed *receiver,
GtkFileChooserEmbed *delegate);