summaryrefslogtreecommitdiff
path: root/libcaja-private/caja-icon-container.c
diff options
context:
space:
mode:
authorJoanmarie Diggs <[email protected]>2018-04-26 16:13:50 -0400
committerlukefromdc <[email protected]>2018-05-03 15:31:47 -0400
commit99cf0cad9fc6ceb0f86066e85af242d2f46c3b88 (patch)
treed0b2a6065365c795b8a29c57912ce7e1a8a251b7 /libcaja-private/caja-icon-container.c
parent5e236e94cc6274dc18d88d1b86cb83c7646287fe (diff)
downloadcaja-99cf0cad9fc6ceb0f86066e85af242d2f46c3b88.tar.bz2
caja-99cf0cad9fc6ceb0f86066e85af242d2f46c3b88.tar.xz
Eliminate accessible children-changed event flood on container repopulation
When the icon container is repopulated (e.g. when using back/forward) finish_adding_new_icons is called leading to an accessible children- changed event flood. We can distinguish these unwanted notifications from desired notifications by comparing the number of new icons to add with the size of the container's icon set.
Diffstat (limited to 'libcaja-private/caja-icon-container.c')
-rw-r--r--libcaja-private/caja-icon-container.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c
index e1db560d..cae3af44 100644
--- a/libcaja-private/caja-icon-container.c
+++ b/libcaja-private/caja-icon-container.c
@@ -7703,6 +7703,8 @@ finish_adding_new_icons (CajaIconContainer *container)
new_icons = container->details->new_icons;
container->details->new_icons = NULL;
+ container->details->is_populating_container =
+ g_list_length(new_icons) == g_hash_table_size(container->details->icon_set);
/* Position most icons (not unpositioned manual-layout icons). */
new_icons = g_list_reverse (new_icons);
@@ -9582,8 +9584,8 @@ caja_icon_container_accessible_icon_added_cb (CajaIconContainer *container,
AtkObject *atk_child;
int index;
- // We don't want to emit children_changed signals during the initial load.
- if (container->details->is_loading)
+ // We don't want to emit children_changed signals during any type of load.
+ if (container->details->is_loading || container->details->is_populating_container)
return;
icon = g_hash_table_lookup (container->details->icon_set, icon_data);