aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--a11y/ChangeLog8
-rw-r--r--a11y/e-table/gal-a11y-e-cell.c2
2 files changed, 10 insertions, 0 deletions
diff --git a/a11y/ChangeLog b/a11y/ChangeLog
index 5ec8e410dd..66904cd4ee 100644
--- a/a11y/ChangeLog
+++ b/a11y/ChangeLog
@@ -1,3 +1,11 @@
+2005-09-27 Harry Lu <harry.lu@sun.com>
+
+ Fix for #316351
+
+ * e-table/gal-a11y-e-cell.c: (idle_do_action),
+ (gal_a11y_e_cell_action_do_action): add a ref/unref pair to make
+ sure the pointer is valid.
+
2005-08-15 Li Yuan <li.yuan@sun.com>
* e-table/gal-a11y-e-table-item.c: (eti_a11y_reset_focus_object):
diff --git a/a11y/e-table/gal-a11y-e-cell.c b/a11y/e-table/gal-a11y-e-cell.c
index 85d577f8e5..5957938978 100644
--- a/a11y/e-table/gal-a11y-e-cell.c
+++ b/a11y/e-table/gal-a11y-e-cell.c
@@ -423,6 +423,7 @@ idle_do_action (gpointer data)
cell->action_idle_handler = 0;
cell->action_func (cell);
+ g_object_unref (cell);
return FALSE;
}
@@ -443,6 +444,7 @@ gal_a11y_e_cell_action_do_action (AtkAction *action,
if (cell->action_idle_handler)
return FALSE;
cell->action_func = info->do_action_func;
+ g_object_ref (cell);
cell->action_idle_handler = g_idle_add (idle_do_action, cell);
return TRUE;