From 55b0019589e73e0c2bd863b596f7252de561ecfc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 20 Feb 2014 18:31:10 -0500 Subject: [PATCH] GtkTooltip: Avoid extra work When we are hiding the label or icon anyway, no need to change it right before, causing reallocation overhead. --- gtk/gtktooltip.c | 70 ++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index e2bb4cc241..919d6ca90f 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -291,12 +291,15 @@ gtk_tooltip_set_markup (GtkTooltip *tooltip, { g_return_if_fail (GTK_IS_TOOLTIP (tooltip)); - gtk_label_set_markup (GTK_LABEL (tooltip->label), markup); - if (markup) - gtk_widget_show (tooltip->label); + { + gtk_label_set_markup (GTK_LABEL (tooltip->label), markup); + gtk_widget_show (tooltip->label); + } else - gtk_widget_hide (tooltip->label); + { + gtk_widget_hide (tooltip->label); + } } /** @@ -315,12 +318,15 @@ gtk_tooltip_set_text (GtkTooltip *tooltip, { g_return_if_fail (GTK_IS_TOOLTIP (tooltip)); - gtk_label_set_text (GTK_LABEL (tooltip->label), text); - if (text) - gtk_widget_show (tooltip->label); + { + gtk_label_set_text (GTK_LABEL (tooltip->label), text); + gtk_widget_show (tooltip->label); + } else - gtk_widget_hide (tooltip->label); + { + gtk_widget_hide (tooltip->label); + } } /** @@ -341,12 +347,15 @@ gtk_tooltip_set_icon (GtkTooltip *tooltip, if (pixbuf) g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); - gtk_image_set_from_pixbuf (GTK_IMAGE (tooltip->image), pixbuf); - if (pixbuf) - gtk_widget_show (tooltip->image); + { + gtk_image_set_from_pixbuf (GTK_IMAGE (tooltip->image), pixbuf); + gtk_widget_show (tooltip->image); + } else - gtk_widget_hide (tooltip->image); + { + gtk_widget_hide (tooltip->image); + } } /** @@ -370,14 +379,17 @@ gtk_tooltip_set_icon_from_stock (GtkTooltip *tooltip, { g_return_if_fail (GTK_IS_TOOLTIP (tooltip)); - G_GNUC_BEGIN_IGNORE_DEPRECATIONS; - gtk_image_set_from_stock (GTK_IMAGE (tooltip->image), stock_id, size); - G_GNUC_END_IGNORE_DEPRECATIONS; - if (stock_id) - gtk_widget_show (tooltip->image); + { + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + gtk_image_set_from_stock (GTK_IMAGE (tooltip->image), stock_id, size); + G_GNUC_END_IGNORE_DEPRECATIONS; + gtk_widget_show (tooltip->image); + } else - gtk_widget_hide (tooltip->image); + { + gtk_widget_hide (tooltip->image); + } } /** @@ -399,12 +411,15 @@ gtk_tooltip_set_icon_from_icon_name (GtkTooltip *tooltip, { g_return_if_fail (GTK_IS_TOOLTIP (tooltip)); - gtk_image_set_from_icon_name (GTK_IMAGE (tooltip->image), icon_name, size); - if (icon_name) - gtk_widget_show (tooltip->image); + { + gtk_image_set_from_icon_name (GTK_IMAGE (tooltip->image), icon_name, size); + gtk_widget_show (tooltip->image); + } else - gtk_widget_hide (tooltip->image); + { + gtk_widget_hide (tooltip->image); + } } /** @@ -426,12 +441,15 @@ gtk_tooltip_set_icon_from_gicon (GtkTooltip *tooltip, { g_return_if_fail (GTK_IS_TOOLTIP (tooltip)); - gtk_image_set_from_gicon (GTK_IMAGE (tooltip->image), gicon, size); - if (gicon) - gtk_widget_show (tooltip->image); + { + gtk_image_set_from_gicon (GTK_IMAGE (tooltip->image), gicon, size); + gtk_widget_show (tooltip->image); + } else - gtk_widget_hide (tooltip->image); + { + gtk_widget_hide (tooltip->image); + } } /**