[gtk+] a11y: Don't use an idle handler for entry actions



commit 2870b58638f0dcacb8e7510ca6716335290f2a29
Author: Benjamin Otte <otte redhat com>
Date:   Tue Jul 5 14:30:49 2011 +0200

    a11y: Don't use an idle handler for entry actions

 gtk/a11y/gtkentryaccessible.c |   41 +----------------------------------------
 gtk/a11y/gtkentryaccessible.h |    2 --
 2 files changed, 1 insertions(+), 42 deletions(-)
---
diff --git a/gtk/a11y/gtkentryaccessible.c b/gtk/a11y/gtkentryaccessible.c
index ff8de78..7e21339 100644
--- a/gtk/a11y/gtkentryaccessible.c
+++ b/gtk/a11y/gtkentryaccessible.c
@@ -51,19 +51,6 @@ G_DEFINE_TYPE_WITH_CODE (GtkEntryAccessible, gtk_entry_accessible, GTK_TYPE_WIDG
                          G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
 
 
-static void
-gtk_entry_accessible_finalize (GObject *object)
-{
-  GtkEntryAccessible *entry = GTK_ENTRY_ACCESSIBLE (object);
-
-  if (entry->action_idle_handler)
-    {
-      g_source_remove (entry->action_idle_handler);
-      entry->action_idle_handler = 0;
-    }
-  G_OBJECT_CLASS (gtk_entry_accessible_parent_class)->finalize (object);
-}
-
 static AtkStateSet*
 gtk_entry_accessible_ref_state_set (AtkObject *accessible)
 {
@@ -207,12 +194,9 @@ gtk_entry_accessible_get_index_in_parent (AtkObject *accessible)
 static void
 gtk_entry_accessible_class_init (GtkEntryAccessibleClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
   GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
 
-  gobject_class->finalize = gtk_entry_accessible_finalize;
-
   class->ref_state_set = gtk_entry_accessible_ref_state_set;
   class->get_index_in_parent = gtk_entry_accessible_get_index_in_parent;
   class->initialize = gtk_entry_accessible_initialize;
@@ -971,31 +955,11 @@ check_for_selection_change (GtkEntryAccessible *accessible,
 }
 
 static gboolean
-idle_do_action (gpointer data)
-{
-  GtkEntryAccessible *entry;
-  GtkWidget *widget;
-
-  entry = GTK_ENTRY_ACCESSIBLE (data);
-  entry->action_idle_handler = 0;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (entry));
-  if (widget == NULL /* State is defunct */ ||
-      !gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  gtk_widget_activate (widget);
-
-  return FALSE;
-}
-
-static gboolean
 gtk_entry_accessible_do_action (AtkAction *action,
                                 gint       i)
 {
-  GtkEntryAccessible *entry;
   GtkWidget *widget;
 
-  entry = GTK_ENTRY_ACCESSIBLE (action);
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
   if (widget == NULL)
     return FALSE;
@@ -1006,10 +970,7 @@ gtk_entry_accessible_do_action (AtkAction *action,
   if (i != 0)
     return FALSE;
 
-  if (entry->action_idle_handler)
-    return FALSE;
-
-  entry->action_idle_handler = gdk_threads_add_idle (idle_do_action, entry);
+  gtk_widget_activate (widget);
 
   return TRUE;
 }
diff --git a/gtk/a11y/gtkentryaccessible.h b/gtk/a11y/gtkentryaccessible.h
index a3d2354..9b9c3c2 100644
--- a/gtk/a11y/gtkentryaccessible.h
+++ b/gtk/a11y/gtkentryaccessible.h
@@ -44,8 +44,6 @@ struct _GtkEntryAccessible
   gint length_delete;
   gint cursor_position;
   gint selection_bound;
-
-  guint action_idle_handler;
 };
 
 struct _GtkEntryAccessibleClass



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