summaryrefslogtreecommitdiff
path: root/src/nautilus-view.c
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2015-07-29 18:07:24 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2015-07-31 13:38:13 -0300
commit9c4f013e99dbfcafbfbce790e4e425a3f92928ca (patch)
tree4af621e74e3f45c90984e9e52a2b9604bf240315 /src/nautilus-view.c
parentba2da7b800e14f22e509161c5c038642c30f9b60 (diff)
downloadnautilus-9c4f013e99dbfcafbfbce790e4e425a3f92928ca.tar.gz
project: simplify focus chain
Nautilus classes add custom methods to grab the focus differently according to the class. The problem with this approach, however, is that we end up with more code coupling, since it's necessary to include more headers to use the custom grab methods. To fix that, make classes override GtkWidget::grab_focus method and remove the custom methods, so widgets can simply call gtk_widget_grab_focus.
Diffstat (limited to 'src/nautilus-view.c')
-rw-r--r--src/nautilus-view.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index da3583e6c..8aa68192d 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -2697,12 +2697,18 @@ slot_inactive (NautilusWindowSlot *slot,
remove_update_context_menus_timeout_callback (view);
}
-void
-nautilus_view_grab_focus (NautilusView *view)
+static void
+nautilus_view_grab_focus (GtkWidget *widget)
{
/* focus the child of the scrolled window if it exists */
+ NautilusView *view;
GtkWidget *child;
+
+ view = NAUTILUS_VIEW (widget);
child = gtk_bin_get_child (GTK_BIN (view->details->scrolled_window));
+
+ GTK_WIDGET_CLASS (nautilus_view_parent_class)->grab_focus (widget);
+
if (child) {
gtk_widget_grab_focus (GTK_WIDGET (child));
}
@@ -7744,6 +7750,7 @@ nautilus_view_class_init (NautilusViewClass *klass)
widget_class->destroy = nautilus_view_destroy;
widget_class->scroll_event = nautilus_view_scroll_event;
widget_class->parent_set = nautilus_view_parent_set;
+ widget_class->grab_focus = nautilus_view_grab_focus;
g_type_class_add_private (klass, sizeof (NautilusViewDetails));