[gtk+] label: Add another special case for measuring
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] label: Add another special case for measuring
- Date: Tue, 29 Mar 2011 15:49:31 +0000 (UTC)
commit 21f117c695800a8f5a16a477c40a435fcd7d224a
Author: Benjamin Otte <otte redhat com>
Date: Tue Mar 29 13:33:47 2011 +0200
label: Add another special case for measuring
gtk/gtklabel.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index ebf4431..759459e 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -3066,6 +3066,17 @@ gtk_label_get_measuring_layout (GtkLabel * label,
return priv->layout;
}
+ /* We can use the label's own layout if we're not allocated a size yet,
+ * because we don't need it to be properly setup at that point.
+ * This way we can make use of caching upon the label's creation.
+ */
+ if (gtk_widget_get_allocated_width (GTK_WIDGET (label)) <= 1)
+ {
+ g_object_ref (priv->layout);
+ pango_layout_set_width (priv->layout, width);
+ return priv->layout;
+ }
+
/* oftentimes we want to measure a width that is far wider than the current width,
* even though the layout is not wrapped. In that case, we can just return the
* current layout, because for measuring purposes, it will be identical.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]