summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-icon-container.c
diff options
context:
space:
mode:
authorPadraig O'Briain <padraig.obriain@sun.com>2004-01-27 13:31:49 +0000
committerPadraig O'Briain <padraigo@src.gnome.org>2004-01-27 13:31:49 +0000
commitc8241a0727934b69fec013fbeda5cdda1550605f (patch)
tree4ada316a14f7667407460a5068c53457c2df2d44 /libnautilus-private/nautilus-icon-container.c
parent241bbd10709e308dc3b7759e955d473c0dd5d8ea (diff)
downloadnautilus-c8241a0727934b69fec013fbeda5cdda1550605f.tar.gz
Implement AtkAction in an idle handler to avoid causing the AT to hang if
2004-01-27 Padraig O'Briain <padraig.obriain@sun.com> * libnautilus-private/nautilus-icon-canvas-item.c: Implement AtkAction in an idle handler to avoid causing the AT to hang if the action does not return until completed, e.g. displays a dialog. Use queue and idle handler defined in NautilusIconContainer. * libnautilus-private/nautilus-icon-container.c (finalize): Free accessibility action queue and remove idle handler. * libnautilus-private/nautilus-icon-private.h: Add a11y_item_action_idle_handler and a11y_item_action_queue to NautilusIconContainerDetails. Fixes bug #132153.
Diffstat (limited to 'libnautilus-private/nautilus-icon-container.c')
-rw-r--r--libnautilus-private/nautilus-icon-container.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
index b19a030e5..d51dbfd78 100644
--- a/libnautilus-private/nautilus-icon-container.c
+++ b/libnautilus-private/nautilus-icon-container.c
@@ -2999,6 +2999,16 @@ finalize (GObject *object)
g_free (details->font);
+ if (details->a11y_item_action_queue != NULL) {
+ while (!g_queue_is_empty (details->a11y_item_action_queue)) {
+ g_free (g_queue_pop_head (details->a11y_item_action_queue));
+ }
+ g_queue_free (details->a11y_item_action_queue);
+ }
+ if (details->a11y_item_action_idle_handler != NULL) {
+ g_source_remove (details->a11y_item_action_idle_handler);
+ }
+
g_free (details);
G_OBJECT_CLASS (parent_class)->finalize (object);