diff options
author | Padraig O'Briain <padraig.obriain@sun.com> | 2004-01-27 13:31:49 +0000 |
---|---|---|
committer | Padraig O'Briain <padraigo@src.gnome.org> | 2004-01-27 13:31:49 +0000 |
commit | c8241a0727934b69fec013fbeda5cdda1550605f (patch) | |
tree | 4ada316a14f7667407460a5068c53457c2df2d44 /libnautilus-private/nautilus-icon-container.c | |
parent | 241bbd10709e308dc3b7759e955d473c0dd5d8ea (diff) | |
download | nautilus-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.c | 10 |
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); |