summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Wehner <martin.wehner@gmail.com>2006-01-31 00:23:55 +0000
committerMartin Wehner <mwehner@src.gnome.org>2006-01-31 00:23:55 +0000
commit2e3313789db733fdcf611f82116a117e6d72ef08 (patch)
tree7b463c9c44d966a352704177a9cdbcc4593d2f3a
parent71d056f26dfb665d830778166ae9e5cb9819387f (diff)
downloadnautilus-2e3313789db733fdcf611f82116a117e6d72ef08.tar.gz
Add new grab_focus method.
2006-01-31 Martin Wehner <martin.wehner@gmail.com> * 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 <gnel@cenobioracing.com>
-rw-r--r--ChangeLog14
-rw-r--r--libnautilus-private/nautilus-view.c10
-rw-r--r--libnautilus-private/nautilus-view.h3
-rw-r--r--src/file-manager/fm-list-view.c7
-rw-r--r--src/nautilus-window.c2
5 files changed, 36 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index da3717bcb..fd6e59466 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2006-01-31 Martin Wehner <martin.wehner@gmail.com>
+
+ * 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 <gnel@cenobioracing.com>
+
2006-01-30 Martin Wehner <martin.wehner@gmail.com>
* 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
@@ -251,6 +251,16 @@ nautilus_view_get_zoom_level (NautilusView *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);
}
/**