summaryrefslogtreecommitdiff
path: root/src/nautilus-canvas-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-canvas-view.c')
-rw-r--r--src/nautilus-canvas-view.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/nautilus-canvas-view.c b/src/nautilus-canvas-view.c
index 07199c9f6..e19fb09a9 100644
--- a/src/nautilus-canvas-view.c
+++ b/src/nautilus-canvas-view.c
@@ -1055,6 +1055,18 @@ update_sort_action_state_hint (NautilusCanvasView *canvas_view)
g_variant_unref (state_hint);
}
+static gboolean
+showing_recent_directory (NautilusView *view)
+{
+ NautilusFile *file;
+
+ file = nautilus_view_get_directory_as_file (view);
+ if (file != NULL) {
+ return nautilus_file_is_in_recent (file);
+ }
+ return FALSE;
+}
+
static void
nautilus_canvas_view_update_actions_state (NautilusView *view)
{
@@ -1103,6 +1115,9 @@ nautilus_canvas_view_update_actions_state (NautilusView *view)
action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), "keep-aligned");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
canvas_view->details->supports_keep_aligned);
+ action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), "sort");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
+ !showing_recent_directory (view));
if (canvas_view->details->supports_keep_aligned) {
keep_aligned = nautilus_canvas_container_is_keep_aligned (get_canvas_container (canvas_view));
g_action_change_state (action, g_variant_new_boolean (keep_aligned));