diff options
author | Joanmarie Diggs <[email protected]> | 2018-04-26 16:13:50 -0400 |
---|---|---|
committer | lukefromdc <[email protected]> | 2018-05-03 15:31:47 -0400 |
commit | 99cf0cad9fc6ceb0f86066e85af242d2f46c3b88 (patch) | |
tree | d0b2a6065365c795b8a29c57912ce7e1a8a251b7 /libcaja-private/caja-icon-container.c | |
parent | 5e236e94cc6274dc18d88d1b86cb83c7646287fe (diff) | |
download | caja-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.c | 6 |
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); |