]> Pileus Git - ~andy/gtk/commitdiff
Don't rely on gtk_expander_get_label
authorMatthias Clasen <matthiasc@src.gnome.org>
Fri, 28 Nov 2008 04:04:03 +0000 (04:04 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 28 Nov 2008 04:04:03 +0000 (04:04 +0000)
svn path=/trunk/; revision=21812

modules/other/gail/ChangeLog
modules/other/gail/gailexpander.c

index 2d8474d802bb6d53327a24752e7a46c8b0a95876..5fe682e18de877be2553fc03014c2c14e62d1564 100644 (file)
@@ -1,3 +1,10 @@
+2008-11-27  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 353088 – gtk_expander_get_label should return the full label text
+
+       * gailexpander.c: Don't rely on gtk_expander_get_label.
+       Patch by Peter Johanson. 
+
 2008-11-24  Li Yuan  <li.yuan@sun.com>
 
        * gailnotebook.c: (gail_notebook_page_added):
index bba530ea328c53b56a11cdecc028dc9f6432e268..99d8c4a38fe53ea2c931f67f583ad16bf87e4266 100644 (file)
@@ -45,6 +45,7 @@ static void                  gail_expander_real_initialize  (AtkObject         *
 static void                  gail_expander_finalize         (GObject           *object);
 static void                  gail_expander_init_textutil    (GailExpander      *expander,
                                                              GtkExpander       *widget);
+static G_CONST_RETURN gchar* gail_expander_get_full_text    (GtkExpander       *widget);
 
 static void                  atk_action_interface_init  (AtkActionIface *iface);
 static gboolean              gail_expander_do_action    (AtkAction      *action,
@@ -169,7 +170,7 @@ gail_expander_get_name (AtkObject *obj)
 
       g_return_val_if_fail (GTK_IS_EXPANDER (widget), NULL);
 
-      return gtk_expander_get_label (GTK_EXPANDER (widget)); 
+      return gail_expander_get_full_text (GTK_EXPANDER (widget));
     }
 }
 
@@ -293,7 +294,7 @@ gail_expander_real_notify_gtk (GObject    *obj,
       const gchar* label_text;
 
 
-      label_text = gtk_expander_get_label (expander);
+      label_text = gail_expander_get_full_text (expander);
 
       gail_expander = GAIL_EXPANDER (atk_obj);
       if (gail_expander->textutil)
@@ -323,6 +324,19 @@ gail_expander_real_notify_gtk (GObject    *obj,
     GAIL_WIDGET_CLASS (gail_expander_parent_class)->notify_gtk (obj, pspec);
 }
 
+static G_CONST_RETURN gchar*
+gail_expander_get_full_text (GtkExpander *widget)
+{
+  GtkWidget *label_widget;
+
+  label_widget = gtk_expander_get_label_widget (widget);
+
+  if (!GTK_IS_LABEL (label_widget))
+    return NULL;
+
+  return gtk_label_get_text (GTK_LABEL (label_widget));
+}
+
 static void
 gail_expander_init_textutil (GailExpander *expander,
                              GtkExpander  *widget)
@@ -330,7 +344,7 @@ gail_expander_init_textutil (GailExpander *expander,
   const gchar *label_text;
 
   expander->textutil = gail_text_util_new ();
-  label_text = gtk_expander_get_label (widget);
+  label_text = gail_expander_get_full_text (widget);
   gail_text_util_text_setup (expander->textutil, label_text);
 }
 
@@ -578,7 +592,7 @@ gail_expander_get_text (AtkText *text,
   if (!expander->textutil) 
     gail_expander_init_textutil (expander, GTK_EXPANDER (widget));
 
-  label_text = gtk_expander_get_label (GTK_EXPANDER (widget));
+  label_text = gail_expander_get_full_text (GTK_EXPANDER (widget));
 
   if (label_text == NULL)
     return NULL;