static void gtk_file_chooser_widget_style_updated (GtkWidget *widget);
static void gtk_file_chooser_widget_screen_changed (GtkWidget *widget,
GdkScreen *previous_screen);
+static gboolean gtk_file_chooser_widget_key_press_event (GtkWidget *widget,
+ GdkEventKey *event);
static gboolean gtk_file_chooser_widget_set_current_folder (GtkFileChooser *chooser,
GFile *folder,
return FALSE;
}
+static gboolean
+gtk_file_chooser_widget_key_press_event (GtkWidget *widget,
+ GdkEventKey *event)
+{
+ GtkFileChooserWidget *impl = (GtkFileChooserWidget *) widget;
+ GtkFileChooserWidgetPrivate *priv = impl->priv;
+
+ if (gtk_search_entry_handle_event (GTK_SEARCH_ENTRY (priv->search_entry), (GdkEvent *)event))
+ {
+ if (priv->operation_mode != OPERATION_MODE_SEARCH)
+ operation_mode_set (impl, OPERATION_MODE_SEARCH);
+ return TRUE;
+ }
+
+ if (GTK_WIDGET_CLASS (gtk_file_chooser_widget_parent_class)->key_press_event (widget, event))
+ return TRUE;
+
+ return FALSE;
+}
+
/* Callback used when the file list's popup menu is detached */
static void
popup_menu_detach_cb (GtkWidget *attach_widget,
widget_class->hierarchy_changed = gtk_file_chooser_widget_hierarchy_changed;
widget_class->style_updated = gtk_file_chooser_widget_style_updated;
widget_class->screen_changed = gtk_file_chooser_widget_screen_changed;
+ widget_class->key_press_event = gtk_file_chooser_widget_key_press_event;
/*
* Signals