summaryrefslogtreecommitdiff
path: root/src/nautilus-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-window.c')
-rw-r--r--src/nautilus-window.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index e3c3f25cf..1b8d9d04f 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -590,17 +590,17 @@ remember_focus_widget (NautilusWindow *window)
}
}
-void
-nautilus_window_grab_focus (NautilusWindow *window)
+static void
+nautilus_window_grab_focus (GtkWidget *widget)
{
NautilusWindowSlot *slot;
- NautilusView *view;
- slot = nautilus_window_get_active_slot (window);
- view = nautilus_window_slot_get_view (slot);
+ slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (widget));
- if (view) {
- nautilus_view_grab_focus (view);
+ GTK_WIDGET_CLASS (nautilus_window_parent_class)->grab_focus (widget);
+
+ if (slot) {
+ gtk_widget_grab_focus (GTK_WIDGET (slot));
}
}
@@ -608,12 +608,7 @@ static void
restore_focus_widget (NautilusWindow *window)
{
if (window->priv->last_focus_widget != NULL) {
- if (NAUTILUS_IS_VIEW (window->priv->last_focus_widget)) {
- nautilus_view_grab_focus (NAUTILUS_VIEW (window->priv->last_focus_widget));
- } else {
- gtk_widget_grab_focus (window->priv->last_focus_widget);
- }
-
+ gtk_widget_grab_focus (window->priv->last_focus_widget);
unset_focus_widget (window);
}
}
@@ -2285,7 +2280,7 @@ nautilus_window_view_visible (NautilusWindow *window,
nautilus_window_slot_update_title (slot);
}
- nautilus_window_grab_focus (window);
+ gtk_widget_grab_focus (GTK_WIDGET (window));
/* All slots, show window */
gtk_widget_show (GTK_WIDGET (window));
@@ -2623,6 +2618,7 @@ nautilus_window_class_init (NautilusWindowClass *class)
wclass->window_state_event = nautilus_window_state_event;
wclass->button_press_event = nautilus_window_button_press_event;
wclass->delete_event = nautilus_window_delete_event;
+ wclass->grab_focus = nautilus_window_grab_focus;
class->close = real_window_close;