From dc3547de3c6cee167c9761cd7adb669cd16495c3 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 28 Nov 2008 04:04:03 +0000 Subject: [PATCH] Don't rely on gtk_expander_get_label svn path=/trunk/; revision=21812 --- modules/other/gail/ChangeLog | 7 +++++++ modules/other/gail/gailexpander.c | 22 ++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/modules/other/gail/ChangeLog b/modules/other/gail/ChangeLog index 2d8474d802..5fe682e18d 100644 --- a/modules/other/gail/ChangeLog +++ b/modules/other/gail/ChangeLog @@ -1,3 +1,10 @@ +2008-11-27 Matthias Clasen + + 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 * gailnotebook.c: (gail_notebook_page_added): diff --git a/modules/other/gail/gailexpander.c b/modules/other/gail/gailexpander.c index bba530ea32..99d8c4a38f 100644 --- a/modules/other/gail/gailexpander.c +++ b/modules/other/gail/gailexpander.c @@ -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;