[maemo-commits] [maemo-commits] r18160 - in projects/haf/trunk/clutter0.8: clutter debian
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Apr 24 13:59:30 EEST 2009
- Previous message: [maemo-commits] r18159 - projects/haf/trunk/dbus/debian/patches
- Next message: [maemo-commits] r18161 - projects/haf/trunk/dbus/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: gw
Date: 2009-04-24 13:59:28 +0300 (Fri, 24 Apr 2009)
New Revision: 18160
Modified:
projects/haf/trunk/clutter0.8/clutter/clutter-label.c
projects/haf/trunk/clutter0.8/debian/changelog
Log:
* clutter/clutter/clutter-label.c: Fix for NB#100805 - labels only fire
a redraw if their text has actually changed from the previous value.
Modified: projects/haf/trunk/clutter0.8/clutter/clutter-label.c
===================================================================
--- projects/haf/trunk/clutter0.8/clutter/clutter-label.c 2009-04-24 09:08:20 UTC (rev 18159)
+++ projects/haf/trunk/clutter0.8/clutter/clutter-label.c 2009-04-24 10:59:28 UTC (rev 18160)
@@ -93,12 +93,12 @@
struct _ClutterLabelPrivate
{
PangoFontDescription *font_desc;
-
+
ClutterColor fgcol;
gchar *text;
gchar *font_name;
-
+
guint alignment : 2;
guint wrap : 1;
guint use_underline : 1;
@@ -308,7 +308,7 @@
ClutterUnit for_height,
ClutterUnit *min_width_p,
ClutterUnit *natural_width_p)
-{
+{
ClutterLabel *label = CLUTTER_LABEL (self);
ClutterLabelPrivate *priv = label->priv;
PangoRectangle logical_rect = { 0, };
@@ -332,7 +332,7 @@
}
if (natural_width_p)
- *natural_width_p = layout_width;
+ *natural_width_p = layout_width;
}
static void
@@ -386,11 +386,11 @@
parent_class->allocate (self, box, origin_changed);
}
-static void
+static void
clutter_label_dispose (GObject *object)
{
ClutterLabel *self = CLUTTER_LABEL(object);
- ClutterLabelPrivate *priv;
+ ClutterLabelPrivate *priv;
priv = self->priv;
@@ -400,14 +400,14 @@
G_OBJECT_CLASS (clutter_label_parent_class)->dispose (object);
}
-static void
+static void
clutter_label_finalize (GObject *object)
{
ClutterLabel *self = CLUTTER_LABEL(object);
- ClutterLabelPrivate *priv;
+ ClutterLabelPrivate *priv;
priv = self->priv;
-
+
if (priv->font_desc)
pango_font_description_free (priv->font_desc);
@@ -418,9 +418,9 @@
}
static void
-clutter_label_set_property (GObject *object,
+clutter_label_set_property (GObject *object,
guint prop_id,
- const GValue *value,
+ const GValue *value,
GParamSpec *pspec)
{
ClutterLabel *label;
@@ -429,7 +429,7 @@
label = CLUTTER_LABEL(object);
priv = label->priv;
- switch (prop_id)
+ switch (prop_id)
{
case PROP_FONT_NAME:
clutter_label_set_font_name (label, g_value_get_string (value));
@@ -457,7 +457,7 @@
break;
case PROP_WRAP_MODE:
clutter_label_set_line_wrap_mode (label, g_value_get_enum (value));
- break;
+ break;
case PROP_ELLIPSIZE:
clutter_label_set_ellipsize (label, g_value_get_enum (value));
break;
@@ -468,9 +468,9 @@
}
static void
-clutter_label_get_property (GObject *object,
+clutter_label_get_property (GObject *object,
guint prop_id,
- GValue *value,
+ GValue *value,
GParamSpec *pspec)
{
ClutterLabel *label;
@@ -480,7 +480,7 @@
label = CLUTTER_LABEL (object);
priv = label->priv;
- switch (prop_id)
+ switch (prop_id)
{
case PROP_FONT_NAME:
g_value_set_string (value, priv->font_name);
@@ -516,7 +516,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
- }
+ }
}
static void
@@ -556,30 +556,30 @@
"Font Colour",
CLUTTER_TYPE_COLOR,
CLUTTER_PARAM_READWRITE));
- g_object_class_install_property
+ g_object_class_install_property
(gobject_class, PROP_ATTRIBUTES,
g_param_spec_boxed ("attributes",
"Attributes",
- "A list of style attributes to apply to the "
+ "A list of style attributes to apply to the "
"text of the label",
PANGO_TYPE_ATTR_LIST,
CLUTTER_PARAM_READWRITE));
- g_object_class_install_property
+ g_object_class_install_property
(gobject_class, PROP_USE_MARKUP,
g_param_spec_boolean ("use-markup",
"Use markup",
- "The text of the label includes XML markup. "
+ "The text of the label includes XML markup. "
"See pango_parse_markup()",
FALSE,
CLUTTER_PARAM_READWRITE));
- g_object_class_install_property
+ g_object_class_install_property
(gobject_class, PROP_WRAP,
g_param_spec_boolean ("wrap",
"Line wrap",
"If set, wrap lines if the text becomes too wide",
FALSE,
CLUTTER_PARAM_READWRITE));
- g_object_class_install_property
+ g_object_class_install_property
(gobject_class, PROP_WRAP_MODE,
g_param_spec_enum ("wrap-mode",
"Line wrap mode",
@@ -587,7 +587,7 @@
PANGO_TYPE_WRAP_MODE,
PANGO_WRAP_WORD,
CLUTTER_PARAM_READWRITE));
- g_object_class_install_property
+ g_object_class_install_property
(gobject_class, PROP_ELLIPSIZE,
g_param_spec_enum ( "ellipsize",
"Ellipsize",
@@ -597,7 +597,7 @@
PANGO_TYPE_ELLIPSIZE_MODE,
PANGO_ELLIPSIZE_NONE,
CLUTTER_PARAM_READWRITE));
- g_object_class_install_property
+ g_object_class_install_property
(gobject_class, PROP_ALIGNMENT,
g_param_spec_enum ( "alignment",
"Alignment",
@@ -683,7 +683,7 @@
* @text: the text to be displayed
* @color: #ClutterColor for text
*
- * Creates a new #ClutterLabel displaying @text with @color
+ * Creates a new #ClutterLabel displaying @text with @color
* using @font_name.
*
* Return value: a #ClutterLabel
@@ -741,12 +741,16 @@
clutter_label_set_text (ClutterLabel *label,
const gchar *text)
{
- ClutterLabelPrivate *priv;
+ ClutterLabelPrivate *priv;
g_return_if_fail (CLUTTER_IS_LABEL (label));
priv = label->priv;
+ /* Check for if the text is exactly the same */
+ if (priv->text!=0 && g_str_equal(priv->text, text))
+ return;
+
g_free (priv->text);
priv->text = g_strdup (text);
@@ -773,7 +777,7 @@
clutter_label_get_font_name (ClutterLabel *label)
{
g_return_val_if_fail (CLUTTER_IS_LABEL (label), NULL);
-
+
return label->priv->font_name;
}
@@ -796,7 +800,7 @@
PangoFontDescription *desc;
g_return_if_fail (CLUTTER_IS_LABEL (label));
-
+
if (!font_name || font_name[0] == '\0')
font_name = DEFAULT_FONT_NAME;
@@ -816,7 +820,7 @@
g_free (priv->font_name);
priv->font_name = g_strdup (font_name);
-
+
if (priv->font_desc)
pango_font_description_free (priv->font_desc);
@@ -826,7 +830,7 @@
if (label->priv->text && label->priv->text[0] != '\0')
clutter_actor_queue_relayout (CLUTTER_ACTOR (label));
-
+
g_object_notify (G_OBJECT (label), "font-name");
}
@@ -897,7 +901,7 @@
* @label: a #ClutterLabel
* @mode: a #PangoEllipsizeMode
*
- * Sets the mode used to ellipsize (add an ellipsis: "...") to the text
+ * Sets the mode used to ellipsize (add an ellipsis: "...") to the text
* if there is not enough space to render the entire string.
*
* Since: 0.2
@@ -911,7 +915,7 @@
g_return_if_fail (CLUTTER_IS_LABEL (label));
g_return_if_fail (mode >= PANGO_ELLIPSIZE_NONE &&
mode <= PANGO_ELLIPSIZE_END);
-
+
priv = label->priv;
if ((PangoEllipsizeMode) priv->ellipsize != mode)
@@ -930,7 +934,7 @@
* clutter_label_get_ellipsize:
* @label: a #ClutterLabel
*
- * Returns the ellipsizing position of the label.
+ * Returns the ellipsizing position of the label.
* See clutter_label_set_ellipsize().
*
* Return value: #PangoEllipsizeMode
@@ -966,9 +970,9 @@
g_return_if_fail (CLUTTER_IS_LABEL (label));
priv = label->priv;
-
+
wrap = wrap != FALSE;
-
+
if (priv->wrap != wrap)
{
priv->wrap = wrap;
@@ -985,7 +989,7 @@
* clutter_label_get_line_wrap:
* @label: a #ClutterLabel
*
- * Returns whether lines in the label are automatically wrapped.
+ * Returns whether lines in the label are automatically wrapped.
* See clutter_label_set_line_wrap ().
*
* Return value: %TRUE if the lines of the label are automatically wrapped.
@@ -1020,7 +1024,7 @@
g_return_if_fail (CLUTTER_IS_LABEL (label));
priv = label->priv;
-
+
if (priv->wrap_mode != wrap_mode)
{
priv->wrap_mode = wrap_mode;
@@ -1055,13 +1059,13 @@
/**
* clutter_label_get_layout:
* @label: a #ClutterLabel
- *
+ *
* Gets the #PangoLayout used to display the label.
* The layout is useful to e.g. convert text positions to
* pixel positions.
* The returned layout is owned by the label so need not be
* freed by the caller.
- *
+ *
* Return value: the #PangoLayout for this label
*
* Since: 0.2
@@ -1088,7 +1092,7 @@
* clutter_label_set_attributes:
* @label: a #ClutterLabel
* @attrs: a #PangoAttrList
- *
+ *
* Sets a #PangoAttrList; the attributes in the list are applied to the
* label text. The attributes set with this function will be ignored
* if the "use_markup" property
@@ -1108,7 +1112,7 @@
if (attrs)
pango_attr_list_ref (attrs);
-
+
if (priv->attrs)
pango_attr_list_unref (priv->attrs);
@@ -1196,7 +1200,7 @@
clutter_label_get_use_markup (ClutterLabel *label)
{
g_return_val_if_fail (CLUTTER_IS_LABEL (label), FALSE);
-
+
return label->priv->use_markup;
}
@@ -1247,7 +1251,7 @@
clutter_label_get_alignment (ClutterLabel *label)
{
g_return_val_if_fail (CLUTTER_IS_LABEL (label), FALSE);
-
+
return label->priv->alignment;
}
Modified: projects/haf/trunk/clutter0.8/debian/changelog
===================================================================
--- projects/haf/trunk/clutter0.8/debian/changelog 2009-04-24 09:08:20 UTC (rev 18159)
+++ projects/haf/trunk/clutter0.8/debian/changelog 2009-04-24 10:59:28 UTC (rev 18160)
@@ -1,7 +1,9 @@
clutter (0.8.2-0maemo29~unreleased) unstable; urgency=low
- * clutter/eglx/clutter-stage-egl.c: Fix for NB#112421. Make sure double
+ * eglx/clutter-stage-egl.c: Fix for NB#112421. Make sure double
buffering is enabled.
+ * clutter/clutter-label.c: Fix for NB#100805 - labels only fire
+ a redraw if their text has actually changed from the previous value.
-- Gordon Williams <gordon.williams at collabora.co.uk> Fri, 22 Apr 2009 14:56:39 +0300
- Previous message: [maemo-commits] r18159 - projects/haf/trunk/dbus/debian/patches
- Next message: [maemo-commits] r18161 - projects/haf/trunk/dbus/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
