[gtk+/quartz-integration: 482/563] a11y: Do actions on cells immediately



commit e30fb4634f66b4d0abac5dac112c0d104619796e
Author: Benjamin Otte <otte redhat com>
Date:   Tue Jun 28 18:34:50 2011 +0200

    a11y: Do actions on cells immediately
    
    No idle handlers, please.

 gtk/a11y/gailcell.c |   25 +++----------------------
 gtk/a11y/gailcell.h |    2 --
 2 files changed, 3 insertions(+), 24 deletions(-)
---
diff --git a/gtk/a11y/gailcell.c b/gtk/a11y/gailcell.c
index de156bf..4efde11 100644
--- a/gtk/a11y/gailcell.c
+++ b/gtk/a11y/gailcell.c
@@ -60,7 +60,6 @@ static const gchar *
 				                   gint                index);
 static gboolean     gail_cell_action_do_action    (AtkAction           *action,
 			                           gint                index);
-static gboolean     idle_do_action                (gpointer            data);
 
 static void         atk_component_interface_init  (AtkComponentIface   *iface);
 static void         gail_cell_get_extents         (AtkComponent        *component,
@@ -148,11 +147,6 @@ gail_cell_object_finalize (GObject *obj)
       g_list_foreach (cell->action_list, _gail_cell_destroy_action_info, NULL);
       g_list_free (cell->action_list);
     }
-  if (cell->action_idle_handler)
-    {
-      g_source_remove (cell->action_idle_handler);
-      cell->action_idle_handler = 0;
-    }
   relation_set = atk_object_ref_relation_set (ATK_OBJECT (obj));
   if (ATK_IS_RELATION_SET (relation_set))
     {
@@ -442,23 +436,10 @@ gail_cell_action_do_action (AtkAction *action,
     return FALSE;
   if (info->do_action_func == NULL)
     return FALSE;
-  if (cell->action_idle_handler)
-    return FALSE;
-  cell->action_func = info->do_action_func;
-  cell->action_idle_handler = gdk_threads_add_idle (idle_do_action, cell);
-  return TRUE;
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GailCell *cell;
-
-  cell = GAIL_CELL (data);
-  cell->action_idle_handler = 0;
-  cell->action_func (cell);
+  
+  info->do_action_func (cell);
 
-  return FALSE;
+  return TRUE;
 }
 
 static void
diff --git a/gtk/a11y/gailcell.h b/gtk/a11y/gailcell.h
index 9beb3b8..82b6471 100644
--- a/gtk/a11y/gailcell.h
+++ b/gtk/a11y/gailcell.h
@@ -49,8 +49,6 @@ struct _GailCell
   AtkStateSet *state_set;
   GList       *action_list;
   void (*refresh_index) (GailCell *cell);
-  gint         action_idle_handler;
-  ACTION_FUNC  action_func;
 };
 
 GType gail_cell_get_type (void);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]