From 2e3313789db733fdcf611f82116a117e6d72ef08 Mon Sep 17 00:00:00 2001 From: Martin Wehner Date: Tue, 31 Jan 2006 00:23:55 +0000 Subject: Add new grab_focus method. 2006-01-31 Martin Wehner * libnautilus-private/nautilus-view.h: * libnautilus-private/nautilus-view.c: (nautilus_view_grab_focus): Add new grab_focus method. * src/file-manager/fm-list-view.c: (fm_list_view_grab_focus), (fm_list_view_iface_init): Implement grab_focus. * src/nautilus-window.c: (nautilus_window_set_content_view_widget): Use grab_focus to set the focus on the content view. Fixes #329087. Patch from Nelson Benitez --- ChangeLog | 14 ++++++++++++++ libnautilus-private/nautilus-view.c | 10 ++++++++++ libnautilus-private/nautilus-view.h | 3 +++ src/file-manager/fm-list-view.c | 7 +++++++ src/nautilus-window.c | 2 ++ 5 files changed, 36 insertions(+) diff --git a/ChangeLog b/ChangeLog index da3717bcb..fd6e59466 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2006-01-31 Martin Wehner + + * libnautilus-private/nautilus-view.h: + * libnautilus-private/nautilus-view.c: (nautilus_view_grab_focus): + Add new grab_focus method. + + * src/file-manager/fm-list-view.c: (fm_list_view_grab_focus), + (fm_list_view_iface_init): + Implement grab_focus. + + * src/nautilus-window.c: (nautilus_window_set_content_view_widget): + Use grab_focus to set the focus on the content view. Fixes #329087. + Patch from Nelson Benitez + 2006-01-30 Martin Wehner * src/nautilus-places-sidebar.c: (compute_drop_position), diff --git a/libnautilus-private/nautilus-view.c b/libnautilus-private/nautilus-view.c index 66027cd3c..8b42070df 100644 --- a/libnautilus-private/nautilus-view.c +++ b/libnautilus-private/nautilus-view.c @@ -250,6 +250,16 @@ nautilus_view_get_zoom_level (NautilusView *view) return (* NAUTILUS_VIEW_GET_IFACE (view)->get_zoom_level) (view); } +void +nautilus_view_grab_focus (NautilusView *view) +{ + g_return_if_fail (NAUTILUS_IS_VIEW (view)); + + if (NAUTILUS_VIEW_GET_IFACE (view)->grab_focus != NULL) { + (* NAUTILUS_VIEW_GET_IFACE (view)->grab_focus) (view); + } +} + void nautilus_view_pop_up_location_context_menu (NautilusView *view, GdkEventButton *event) diff --git a/libnautilus-private/nautilus-view.h b/libnautilus-private/nautilus-view.h index 7eb57ba2e..8f425a2b4 100644 --- a/libnautilus-private/nautilus-view.h +++ b/libnautilus-private/nautilus-view.h @@ -106,6 +106,8 @@ struct _NautilusViewIface gboolean (* can_zoom_in) (NautilusView *view); gboolean (* can_zoom_out) (NautilusView *view); + void (* grab_focus) (NautilusView *view); + /* Request popup of context menu referring to the open location. * This is triggered in spatial windows by right-clicking the location button, * in navigational windows by right-clicking the "Location:" label in the @@ -151,6 +153,7 @@ gboolean nautilus_view_can_zoom_out (NautilusView *v NautilusZoomLevel nautilus_view_get_zoom_level (NautilusView *view); void nautilus_view_pop_up_location_context_menu (NautilusView *view, GdkEventButton *event); +void nautilus_view_grab_focus (NautilusView *view); G_END_DECLS diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c index 377cf7ad3..cd2f84650 100644 --- a/src/file-manager/fm-list-view.c +++ b/src/file-manager/fm-list-view.c @@ -2465,6 +2465,12 @@ list_view_scroll_to_file (NautilusView *view, } } +static void +fm_list_view_grab_focus (NautilusView *view) +{ + gtk_widget_grab_focus (GTK_WIDGET (FM_LIST_VIEW (view)->details->tree_view)); +} + static void fm_list_view_class_init (FMListViewClass *class) @@ -2536,6 +2542,7 @@ fm_list_view_iface_init (NautilusViewIface *iface) iface->get_first_visible_file = fm_list_view_get_first_visible_file; iface->scroll_to_file = list_view_scroll_to_file; iface->get_title = NULL; + iface->grab_focus = fm_list_view_grab_focus; } diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 9e564f994..3d0bb4b3f 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -1224,6 +1224,8 @@ nautilus_window_set_content_view_widget (NautilusWindow *window, EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window, set_content_view_widget, (window, frame)); + + nautilus_view_grab_focus (frame); } /** -- cgit v1.2.1