[lasem] [SVG] Fix computation of stop element offset for gradients.



commit 16191c1a9c9cb4c5d73b0b1686255e0a5473237e
Author: Emmanuel Pacaud <emmanuel pacaud lapp in2p3 fr>
Date:   Fri May 15 20:45:24 2009 +0200

    [SVG] Fix computation of stop element offset for gradients.
---
 src/lsmsvggradientelement.c |    3 +--
 src/lsmsvgstopelement.c     |    9 ++++++---
 src/lsmsvgstopelement.h     |    2 +-
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/lsmsvggradientelement.c b/src/lsmsvggradientelement.c
index 0d4053c..2b441b7 100644
--- a/src/lsmsvggradientelement.c
+++ b/src/lsmsvggradientelement.c
@@ -70,8 +70,7 @@ _gradient_element_graphic_render (LsmSvgElement *self, LsmSvgView *view)
 
 			stop = LSM_SVG_STOP_ELEMENT (iter);
 
-			offset = lsm_svg_view_normalize_length (view,  lsm_svg_stop_element_get_offset (stop),
-								LSM_SVG_LENGTH_DIRECTION_DIAGONAL);
+			offset = lsm_svg_stop_element_get_offset (stop);
 			color = lsm_svg_stop_element_get_color (stop);
 			opacity = lsm_svg_stop_element_get_opacity (stop);
 
diff --git a/src/lsmsvgstopelement.c b/src/lsmsvgstopelement.c
index 04196a7..efdd129 100644
--- a/src/lsmsvgstopelement.c
+++ b/src/lsmsvgstopelement.c
@@ -51,12 +51,15 @@ _stop_element_update (LsmSvgElement *self, LsmSvgStyle *parent_style)
 
 /* LsmSvgStopElement implementation */
 
-const LsmSvgLength *
+double
 lsm_svg_stop_element_get_offset (LsmSvgStopElement *self)
 {
-	g_return_val_if_fail (LSM_IS_SVG_STOP_ELEMENT (self), NULL);
+	g_return_val_if_fail (LSM_IS_SVG_STOP_ELEMENT (self), 0.0);
 
-	return &(LSM_SVG_STOP_ELEMENT (self)->offset.length);
+	if (self->offset.length.type == LSM_SVG_LENGTH_TYPE_PERCENTAGE)
+		return self->offset.length.value_unit / 100.0;
+	else
+		return self->offset.length.value_unit;
 }
 
 const LsmSvgColor *
diff --git a/src/lsmsvgstopelement.h b/src/lsmsvgstopelement.h
index 3355aca..c821dd4 100644
--- a/src/lsmsvgstopelement.h
+++ b/src/lsmsvgstopelement.h
@@ -50,7 +50,7 @@ GType lsm_svg_stop_element_get_type (void);
 
 LsmDomNode * lsm_svg_stop_element_new (void);
 
-const LsmSvgLength *	lsm_svg_stop_element_get_offset 	(LsmSvgStopElement *self);
+double 			lsm_svg_stop_element_get_offset 	(LsmSvgStopElement *self);
 const LsmSvgColor *	lsm_svg_stop_element_get_color 		(LsmSvgStopElement *self);
 double 			lsm_svg_stop_element_get_opacity 	(LsmSvgStopElement *self);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]