aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohannes Hofmann <Johannes.Hofmann@gmx.de>2009-10-18 18:26:05 +0200
committerJohannes Hofmann <Johannes.Hofmann@gmx.de>2009-10-18 18:26:05 +0200
commitb2eebc7a2704a7a945358838ab0d45935fe86a85 (patch)
tree41231446a8b18165fb0c26d41f8e97db5ba3248a /src
parent58e8cc02ca27066eb514eae6dcbfbfe8060eaeaa (diff)
represent millimeter values as fractions in CssLength
E.g. for letter-spacing sub-millimeter values actually make a difference. The maximum value that is representable is now 65535 mm which should be enough in most cases.
Diffstat (limited to 'src')
-rw-r--r--src/css.hh6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/css.hh b/src/css.hh
index c1303ffd..79ba302b 100644
--- a/src/css.hh
+++ b/src/css.hh
@@ -63,7 +63,7 @@ typedef enum {
* | <------ fixed point value ------> |
*
* where type is one of the CSS_LENGTH_TYPE_* values.
- * CSS_LENGTH_TYPE_PX and CSS_LENGTH_TYPE_MM are stored as
+ * CSS_LENGTH_TYPE_PX values are stored as
* 29 bit signed integer, all other types as fixed point values.
*/
@@ -88,13 +88,13 @@ inline CssLength CSS_CREATE_LENGTH (float v, CssLengthType t) {
switch (t) {
case CSS_LENGTH_TYPE_PX:
- case CSS_LENGTH_TYPE_MM:
iv = (int) (v + 0.5);
if (iv > CSS_LENGTH_INT_MAX)
iv = CSS_LENGTH_INT_MAX;
else if (iv < -CSS_LENGTH_INT_MAX)
iv = -CSS_LENGTH_INT_MAX;
return iv << 3 | t;
+ case CSS_LENGTH_TYPE_MM:
case CSS_LENGTH_TYPE_EM:
case CSS_LENGTH_TYPE_EX:
case CSS_LENGTH_TYPE_PERCENTAGE:
@@ -119,8 +119,8 @@ inline CssLengthType CSS_LENGTH_TYPE (CssLength l) {
inline float CSS_LENGTH_VALUE (CssLength l) {
switch (CSS_LENGTH_TYPE(l)) {
case CSS_LENGTH_TYPE_PX:
- case CSS_LENGTH_TYPE_MM:
return (float) (l >> 3);
+ case CSS_LENGTH_TYPE_MM:
case CSS_LENGTH_TYPE_EM:
case CSS_LENGTH_TYPE_EX:
case CSS_LENGTH_TYPE_PERCENTAGE: