[gtk+/gtk-3-16] a11y: Refactor code



commit 08bf5c4d8ce63129b4f1da823e84d5ac72d3ce54
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Wed Mar 25 03:57:45 2015 +0100

    a11y: Refactor code
    
    Put the equality check in front. This allows better detection of when an
    insert or delete needs to be emitted.
    
    Also, only emit text-changed:delete if the deleted text is not the empty
    string. Only emit text-changed:insert if the inserted text is not the
    empty string.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=746706

 gtk/a11y/gtktextcellaccessible.c |   30 +++++++++++-------------------
 1 files changed, 11 insertions(+), 19 deletions(-)
---
diff --git a/gtk/a11y/gtktextcellaccessible.c b/gtk/a11y/gtktextcellaccessible.c
index 1b68c94..8ea2d27 100644
--- a/gtk/a11y/gtktextcellaccessible.c
+++ b/gtk/a11y/gtktextcellaccessible.c
@@ -136,7 +136,6 @@ gtk_text_cell_accessible_update_cache (GtkCellAccessible *cell)
 {
   GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (cell);
   AtkObject *obj = ATK_OBJECT (cell);
-  gboolean rv = FALSE;
   gint temp_length, text_length;
   gchar *text;
   GtkCellRenderer *renderer;
@@ -153,9 +152,9 @@ gtk_text_cell_accessible_update_cache (GtkCellAccessible *cell)
     text = g_strdup ("");
   text_length = g_utf8_strlen (text, -1);
 
-  if (text_cell->priv->cell_text)
+  if (g_strcmp0 (text_cell->priv->cell_text, text) != 0)
     {
-      if (text == NULL || g_strcmp0 (text_cell->priv->cell_text, text) != 0)
+      if (text_cell->priv->cell_length)
         {
           g_free (text_cell->priv->cell_text);
           temp_length = text_cell->priv->cell_length;
@@ -164,29 +163,22 @@ gtk_text_cell_accessible_update_cache (GtkCellAccessible *cell)
           g_signal_emit_by_name (cell, "text-changed::delete", 0, temp_length);
           if (obj->name == NULL)
             g_object_notify (G_OBJECT (obj), "accessible-name");
-          if (text)
-            rv = TRUE;
         }
-    }
-  else
-    rv = TRUE;
 
-  if (rv)
-    {
       text_cell->priv->cell_text = g_strdup (text);
       text_cell->priv->cell_length = text_length;
-    }
 
-  g_free (text);
-
-  if (rv)
-    {
-      g_signal_emit_by_name (cell, "text-changed::insert",
-                             0, text_cell->priv->cell_length);
+      if (text_length)
+        {
+          g_signal_emit_by_name (cell, "text-changed::insert",
+                                 0, text_cell->priv->cell_length);
 
-      if (obj->name == NULL)
-        g_object_notify (G_OBJECT (obj), "accessible-name");
+          if (obj->name == NULL)
+            g_object_notify (G_OBJECT (obj), "accessible-name");
+        }
     }
+
+  g_free (text);
 }
 
 static void


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