[clutter/clutter-1.16] clutter-text: prevent text buffer creation if not needed
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/clutter-1.16] clutter-text: prevent text buffer creation if not needed
- Date: Wed, 10 Jul 2013 12:24:52 +0000 (UTC)
commit eed94960562693e489354afb2a78a355301515fa
Author: Lionel Landwerlin <llandwerlin gmail com>
Date: Tue Jul 9 16:46:35 2013 +0100
clutter-text: prevent text buffer creation if not needed
When allocating or asking for preferred width/height on a ClutterText,
it can notify a change on buffer/text/max-length if no text has been
set.
https://bugzilla.gnome.org/show_bug.cgi?id=703882
clutter/clutter-text.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/clutter/clutter-text.c b/clutter/clutter-text.c
index 0ce2c3a..1f5c3a4 100644
--- a/clutter/clutter-text.c
+++ b/clutter/clutter-text.c
@@ -344,6 +344,18 @@ clutter_text_clear_selection (ClutterText *self)
}
}
+static gboolean
+clutter_text_is_empty (ClutterText *self)
+{
+ if (self->priv->buffer == NULL)
+ return TRUE;
+
+ if (clutter_text_buffer_get_length (self->priv->buffer) == 0)
+ return TRUE;
+
+ return FALSE;
+}
+
static gchar *
clutter_text_get_display_text (ClutterText *self)
{
@@ -351,6 +363,13 @@ clutter_text_get_display_text (ClutterText *self)
ClutterTextBuffer *buffer;
const gchar *text;
+ /* short-circuit the case where the buffer is unset or it's empty,
+ * to avoid creating a pointless TextBuffer and emitting
+ * notifications with it
+ */
+ if (clutter_text_is_empty (self))
+ return g_strdup ("");
+
buffer = get_buffer (self);
text = clutter_text_buffer_get_text (buffer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]