From ced0bab02f7593ec5b84e40dfc181f363f3e294a Mon Sep 17 00:00:00 2001 From: Mathias Hasselmann Date: Fri, 15 Jun 2007 18:25:11 +0000 Subject: [PATCH] Improving handling of tooltip-text property. Also check result of tooltip 2007-06-15 Mathias Hasselmann * gtk/gtkwidget.c: Improving handling of tooltip-text property. * tests/testtooltips.c: Also check result of tooltip getters. svn path=/trunk/; revision=18143 --- ChangeLog | 5 +++++ gtk/gtkwidget.c | 23 +++++++---------------- tests/testtooltips.c | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 76bc929cb..d95cf21f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-06-15 Mathias Hasselmann + + * gtk/gtkwidget.c: Improving handling of tooltip-text property. + * tests/testtooltips.c: Also check result of tooltip getters. + 2007-06-15 Mathias Hasselmann * docs/reference/gtk/gtk-sections.txt, gtk/gtk.symbols, diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 97c242f85..577b1dbc0 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2042,8 +2042,7 @@ gtk_widget_set_property (GObject *object, g_object_set_qdata_full (object, quark_tooltip_markup, tooltip_markup, g_free); - tmp = (tooltip_window != NULL || tooltip_markup != NULL); - gtk_widget_set_has_tooltip (widget, tmp, FALSE); + gtk_widget_set_has_tooltip (widget, TRUE, FALSE); break; default: break; @@ -2145,20 +2144,12 @@ gtk_widget_get_property (GObject *object, case PROP_TOOLTIP_TEXT: { gchar *escaped = g_object_get_qdata (object, quark_tooltip_markup); - if (!escaped) - g_value_set_string (value, NULL); - else - { - gchar *text; - - if (pango_parse_markup (escaped, -1, 0, NULL, &text, NULL, NULL)) - { - g_value_set_string (value, text); - g_free (text); - } - else - g_value_set_string (value, NULL); - } + gchar *text = NULL; + + if (escaped && !pango_parse_markup (escaped, -1, 0, NULL, &text, NULL, NULL)) + g_assert (NULL == text); /* text should still be NULL in case of markup errors */ + + g_value_set_string (value, text); } break; case PROP_TOOLTIP_MARKUP: diff --git a/tests/testtooltips.c b/tests/testtooltips.c index 3a94c4438..358cb9065 100644 --- a/tests/testtooltips.c +++ b/tests/testtooltips.c @@ -273,6 +273,8 @@ main (int argc, char *argv[]) GtkTextIter iter; GtkTextTag *tag; + gchar *text, *markup; + gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -289,6 +291,12 @@ main (int argc, char *argv[]) gtk_widget_set_tooltip_text (button, "Hello, I am a static tooltip."); gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + text = gtk_widget_get_tooltip_text (button); + markup = gtk_widget_get_tooltip_markup (button); + g_assert (g_str_equal ("Hello, I am a static tooltip.", text)); + g_assert (g_str_equal ("Hello, I am a static tooltip.", markup)); + g_free (text); g_free (markup); + /* A check button using the query-tooltip signal */ button = gtk_check_button_new_with_label ("I use the query-tooltip signal"); g_object_set (button, "has-tooltip", TRUE, NULL); @@ -302,12 +310,24 @@ main (int argc, char *argv[]) gtk_widget_set_tooltip_text (button, "Label & and tooltip"); gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + text = gtk_widget_get_tooltip_text (button); + markup = gtk_widget_get_tooltip_markup (button); + g_assert (g_str_equal ("Label & and tooltip", text)); + g_assert (g_str_equal ("Label & and tooltip", markup)); + g_free (text); g_free (markup); + /* A selectable label */ button = gtk_label_new ("I am a selectable label"); gtk_label_set_selectable (GTK_LABEL (button), TRUE); gtk_widget_set_tooltip_markup (button, "Another Label tooltip"); gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + text = gtk_widget_get_tooltip_text (button); + markup = gtk_widget_get_tooltip_markup (button); + g_assert (g_str_equal ("Another Label tooltip", text)); + g_assert (g_str_equal ("Another Label tooltip", markup)); + g_free (text); g_free (markup); + /* Another one, with a custom tooltip window */ button = gtk_check_button_new_with_label ("This one has a custom tooltip window!"); gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); -- 2.43.2