diff options
-rw-r--r-- | src/nautilus-canvas-container.c | 6 | ||||
-rw-r--r-- | src/nautilus-canvas-private.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/nautilus-canvas-container.c b/src/nautilus-canvas-container.c index 1b91f4f87..9a20ee3e8 100644 --- a/src/nautilus-canvas-container.c +++ b/src/nautilus-canvas-container.c @@ -5106,6 +5106,7 @@ nautilus_canvas_container_add (NautilusCanvasContainer *container, void nautilus_canvas_container_layout_now (NautilusCanvasContainer *container) { + container->details->in_layout_now = TRUE; if (container->details->idle_id != 0) { unschedule_redo_layout (container); @@ -5116,6 +5117,7 @@ nautilus_canvas_container_layout_now (NautilusCanvasContainer *container) * newly added files may trigger a change in the size allocation and * thus toggle scrollbars on */ gtk_container_check_resize (GTK_CONTAINER (gtk_widget_get_parent (GTK_WIDGET (container)))); + container->details->in_layout_now = FALSE; } /** @@ -5994,6 +5996,10 @@ nautilus_canvas_container_accessible_icon_added_cb (NautilusCanvasContainer *con AtkObject *atk_parent; AtkObject *atk_child; + /* We don't want to emit children_changed signals during the initial load. */ + if (!container->details->in_layout_now) + return; + icon = g_hash_table_lookup (container->details->icon_set, icon_data); if (icon) { diff --git a/src/nautilus-canvas-private.h b/src/nautilus-canvas-private.h index e9ae3b638..887e95617 100644 --- a/src/nautilus-canvas-private.h +++ b/src/nautilus-canvas-private.h @@ -201,6 +201,7 @@ struct NautilusCanvasContainerDetails { guint a11y_item_action_idle_handler; GQueue* a11y_item_action_queue; + eel_boolean_bit in_layout_now : 1; eel_boolean_bit is_loading : 1; eel_boolean_bit needs_resort : 1; eel_boolean_bit selection_needs_resort : 1; |