aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-04-14 00:20:48 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-06-30 00:41:54 +0800
commitbdc73471827871c2f9a6f213c1cfa4e9839548a9 (patch)
treed92faa4f3b57fc88e0956b022975c89a9aa3ec2a /widgets/table
parentfec408b4c5f8059400ba90ead05d1692083cc97a (diff)
downloadgsoc2013-evolution-bdc73471827871c2f9a6f213c1cfa4e9839548a9.tar.gz
gsoc2013-evolution-bdc73471827871c2f9a6f213c1cfa4e9839548a9.tar.zst
gsoc2013-evolution-bdc73471827871c2f9a6f213c1cfa4e9839548a9.zip
Work around another a11y crash.
Some kind of object lifetime issue in GalA11yETableItem. Just work around it for now. Killing this class would pretty much mean killing a11y support for ETables entirely and I'm not that pissed off... yet.
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/gal-a11y-e-table-item.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/widgets/table/gal-a11y-e-table-item.c b/widgets/table/gal-a11y-e-table-item.c
index eb0c9be127..f35eeb1a69 100644
--- a/widgets/table/gal-a11y-e-table-item.c
+++ b/widgets/table/gal-a11y-e-table-item.c
@@ -71,8 +71,16 @@ static AtkObject* eti_ref_at (AtkTable *table, gint row, gint column);
static void
item_finalized (gpointer user_data, GObject *gone_item)
{
- GalA11yETableItem *a11y = GAL_A11Y_E_TABLE_ITEM (user_data);
- GalA11yETableItemPrivate *priv = GET_PRIVATE (a11y);
+ GalA11yETableItem *a11y;
+ GalA11yETableItemPrivate *priv;
+
+ /* XXX GalA11yETableItem may already be finalized.
+ * Just work around it for now. */
+ if (!GAL_A11Y_IS_E_TABLE_ITEM (user_data))
+ return;
+
+ a11y = GAL_A11Y_E_TABLE_ITEM (user_data);
+ priv = GET_PRIVATE (a11y);
atk_state_set_add_state (priv->state_set, ATK_STATE_DEFUNCT);
atk_object_notify_state_change (ATK_OBJECT (a11y), ATK_STATE_DEFUNCT, TRUE);