Skip to content

Commit 5e236e9

Browse files
committed
Eliminate accessible children-changed event flood during update all
Accessible children-changed events should only be emitted when a user- triggered action (creation of file, copying an item) causes an item to be added. Set container->details->is_loading (which does not seem to be used anywhere) in caja_icon_container_request_update_all because if the entire container is being updated, children-changed events should not be emitted for each updated icon.
1 parent 3c3f62d commit 5e236e9

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

‎libcaja-private/caja-icon-container.c‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8025,13 +8025,15 @@ caja_icon_container_request_update_all (CajaIconContainer *container)
80258025

80268026
g_return_if_fail (CAJA_IS_ICON_CONTAINER (container));
80278027

8028+
container->details->is_loading = TRUE;
80288029
for (node = container->details->icons; node != NULL; node = node->next)
80298030
{
80308031
icon = node->data;
80318032
caja_icon_container_update_icon (container, icon);
80328033
}
80338034

80348035
redo_layout (container);
8036+
container->details->is_loading = FALSE;
80358037
}
80368038

80378039
/**
@@ -9580,6 +9582,10 @@ caja_icon_container_accessible_icon_added_cb (CajaIconContainer *container,
95809582
AtkObject *atk_child;
95819583
int index;
95829584

9585+
// We don't want to emit children_changed signals during the initial load.
9586+
if (container->details->is_loading)
9587+
return;
9588+
95839589
icon = g_hash_table_lookup (container->details->icon_set, icon_data);
95849590
if (icon)
95859591
{

0 commit comments

Comments
 (0)