diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2015-05-18 19:50:54 +0000 |
|---|---|---|
| committer | tavmjong-free <tavmjong@free.fr> | 2015-05-18 19:50:54 +0000 |
| commit | 7c7e740dd76054367ceae7f545ac27f0d7cdc7f0 (patch) | |
| tree | 73b552a3f7337a029eb337bb876f932511137cbd /src/desktop-style.cpp | |
| parent | sbasis-to-bezier. avoid ill-conditioned behavior for anti-symmetric case. (Bu... (diff) | |
| download | inkscape-7c7e740dd76054367ceae7f545ac27f0d7cdc7f0.tar.gz inkscape-7c7e740dd76054367ceae7f545ac27f0d7cdc7f0.zip | |
Enable setting of 'font-variant-ligatures' (rendering waits on new Pango library).
(bzr r14162)
Diffstat (limited to 'src/desktop-style.cpp')
| -rw-r--r-- | src/desktop-style.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 3bb0ce71a..d2109c03c 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -1178,17 +1178,20 @@ objects_query_fontvariants (const std::vector<SPItem*> &objects, SPStyle *style_ SPILigatures* ligatures_res = &(style_res->font_variant_ligatures); SPIEnum* position_res = &(style_res->font_variant_position); SPIEnum* caps_res = &(style_res->font_variant_caps); - + SPINumeric* numeric_res = &(style_res->font_variant_numeric); + // Stores 'and' of all values ligatures_res->computed = SP_CSS_FONT_VARIANT_LIGATURES_NORMAL; position_res->computed = SP_CSS_FONT_VARIANT_POSITION_NORMAL; caps_res->computed = SP_CSS_FONT_VARIANT_CAPS_NORMAL; + numeric_res->computed = SP_CSS_FONT_VARIANT_NUMERIC_NORMAL; // Stores only differences ligatures_res->value = 0; position_res->value = 0; caps_res->value = 0; - + numeric_res->value = 0; + for (std::vector<SPItem*>::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = *i; @@ -1204,8 +1207,9 @@ objects_query_fontvariants (const std::vector<SPItem*> &objects, SPStyle *style_ texts ++; SPILigatures* ligatures_in = &(style->font_variant_ligatures); - SPIEnum* position_in = &(style->font_variant_position); - SPIEnum* caps_in = &(style->font_variant_caps); + SPIEnum* position_in = &(style->font_variant_position); + SPIEnum* caps_in = &(style->font_variant_caps); + SPINumeric* numeric_in = &(style->font_variant_numeric); // computed stores which bits are on/off, only valid if same between all selected objects. // value stores which bits are different between objects. This is a bit of an abuse of // the values but then we don't need to add new variables to class. @@ -1219,21 +1223,23 @@ objects_query_fontvariants (const std::vector<SPItem*> &objects, SPStyle *style_ caps_res->value |= (caps_res->computed ^ caps_in->computed ); caps_res->computed &= caps_in->computed; + numeric_res->value |= (numeric_res->computed ^ numeric_in->computed ); + numeric_res->computed &= numeric_in->computed; + } else { ligatures_res->computed = ligatures_in->computed; - position_res->computed = position_in->computed; - caps_res->computed = caps_in->computed; + position_res->computed = position_in->computed; + caps_res->computed = caps_in->computed; + numeric_res->computed = numeric_in->computed; } set = true; } - bool different = (style_res->font_variant_ligatures.value != - style_res->font_variant_ligatures.computed || - style_res->font_variant_position.value != - style_res->font_variant_position.computed || - style_res->font_variant_caps.value != - style_res->font_variant_caps.computed ); + bool different = (style_res->font_variant_ligatures.value != 0 || + style_res->font_variant_position.value != 0 || + style_res->font_variant_caps.value != 0 || + style_res->font_variant_numeric.value != 0 ); if (texts == 0 || !set) return QUERY_STYLE_NOTHING; |
