summaryrefslogtreecommitdiff
path: root/pango/pango-attributes.c
Commit message (Collapse)AuthorAgeFilesLines
* Add segmentation attributesbreak-tailoringMatthias Clasen2021-08-251-0/+56
| | | | | | | Add attributes that let us override word and sentence boundaries (and, indirectly, line breaks). Tests included.
* attributes: Silence compiler warningsMatthias Clasen2021-08-221-9/+9
|
* Add a forgotten binding helperMatthias Clasen2021-08-221-0/+1
| | | | The new text-transform attribute was overlooked.
* Fix binding helpers for absolute-line-heightMatthias Clasen2021-08-221-0/+1
| | | | This was overlooked.
* markup: Add a text transform attributeMatthias Clasen2021-08-201-0/+26
| | | | | | Add a PangoTextTransform enum, a PangoAttribute to set it on runs of text, and support for parsing it out of markup.
* Some code reorgcode-reorgMatthias Clasen2021-08-201-506/+531
| | | | Reshuffle pango-attributes.c internally.
* Some code reorgMatthias Clasen2021-08-201-0/+22
| | | | | Split the itemization code into its own file, and move things around a bit.
* Add line-height attributesMatthias Clasen2021-08-081-0/+53
| | | | | | | | | | | | Add attributes for line-height, in a relative and absolute variant. This will be used to grow the logical extents of runs in a way that is compatible with CSS semantics. In markup, we support a new line_height attribute that will be interpreted as absolute if it is an integer > 1024, and as a relative factor otherwise.
* attributes: Add helper api for introspectionintrospection-fixesMatthias Clasen2021-08-011-0/+254
| | | | | | | | Add functions to cast PangoAttribute to the various struct types, so language bindings can get at the payload. Fixes: #476
* Correctly handle font attributesbetter-ellipsizeMatthias Clasen2021-07-221-9/+10
| | | | | | | | | | pango_attr_iterator_get_attributes only returns the innermost attribute of each kind. That is correct for attributes that supersede each other, but not for font descriptions, which get merged. So, keep all font attributes in the returned list. Update affected tests.
* font-desc: Use local volatile double values to store sizesMarco Trevisan (Treviño)2021-07-211-2/+8
| | | | | | | | | | | | | | | | | | | | Under i386 multiplying double and integer values and cast it to integer may end up to compute the wrong value when only 387 FPU is used, because the temporary value will be stored in a register whose precision isn't good enough. And so, some multiplications which are expected to produce an integer, will actually return a truncated value, that will be eventually floored. An example is 1.2 * 12800 that is clearly 15360.0, but will produce 15359 when casted to int in the said i386 environment. So use a temporary double variable to ensure that we do this computation in the double scope, before casting to int. And this will avoid using the said register, even when using more aggressive optimizations (as per marking the local variable volatile). Fixes: https://gitlab.gnome.org/GNOME/pango/-/issues/580
* Remove an erroneous early exitMatthias Clasen2021-07-091-9/+6
| | | | | | | | pango_attr_list_change was returning early in one case, missing to do some necessary cleanup of the list. Fixes: #564
* Link to the CSS font-feature-settings docs for pango_attr_font_features_newFederico Mena Quintero2021-06-141-1/+5
| | | | Fixes https://gitlab.gnome.org/GNOME/pango/-/issues/565
* docs: Link syntax fixesdocs-link-fixesMatthias Clasen2021-05-251-3/+3
| | | | | Now that gi-docgen warns about link syntax errors, we can find and fix them.
* Explicitly preserve unlimited attributesMatthias Clasen2021-05-231-18/+24
| | | | | When calling pango_attr_list_update(), we must not change the limits or attributes that are unlimited.
* Merge branch 'doc-fixes' into 'master'Matthias Clasen2021-05-231-1/+1
|\ | | | | | | | | docs: Fix link syntax in a few places See merge request GNOME/pango!337
| * docs: Fix link syntax in a few placesdoc-fixesMatthias Clasen2021-05-231-1/+1
| |
* | Avoid unsigned int pitfallsMatthias Clasen2021-05-231-1/+2
|/ | | | | | | | | When we tried to catch attr list overflow in 895759096309e7c, we overlooked that add - remove can be negative, leading to unexpected results. Avoid this case. Fixes: #561
* docs: Convert gtk-doc syntax leftoversdocs-cleanupMatthias Clasen2021-05-191-178/+240
| | | | | Remove leftovers like #Type, reduce indentations to avoid markdown block quotes, etc.
* introspection: Stop using allow-noneMatthias Clasen2021-05-191-4/+4
| | | | | The allow-none annotation has been deprecated for a long time already. Instead use optional and nullable everywhere.
* Fix various broken linksMatthias Clasen2021-03-111-2/+2
| | | | All these were pointed out by gi-docgen warnings.
* docs: Tweak attributes docsMatthias Clasen2021-03-111-20/+32
| | | | Give doc comments summaries, etc.
* docs: Port PangoAttribute to the new doc formatMatthias Clasen2021-03-111-400/+396
| | | | Replace gtk-doc'isms and use gi-docgen links instead.
* docs: Convert markup and attributes docs to pango_markup.mdMatthias Clasen2021-03-111-11/+0
|
* docs: Replace lots of vestigial xml markupMatthias Clasen2021-03-111-1/+1
| | | | | We want to use pure markdown, since docbook is going away as the intermediate format.
* Fix a corner-case of pango_attr_list_splicefix-attribute-splicingMatthias Clasen2021-02-171-2/+5
| | | | | | | | | | | | | | When the 'other' list contains attributes that are unlimited or exceed the range given to pango_attr_list_splice, those attributes were 'leaking' out of the range. The visible effect of this is that the underline of preedit text extends outside the preedit in some GTK entries. Fix this by clipping the inserted attributes to the range. The documentation is not very explicit about this, but I believe this is the expected behavior. Tests included.
* Avoid overflow when updating attr listsattr-list-overflowMatthias Clasen2021-01-231-1/+4
| | | | | | | | | | | Avoid overflow when updating the end_index of attributes in pango_attr_list_update. This is a real risk, because end_index is commonly set to G_MAXUINT to mean 'until the very end'. Test included. Fixes: #455
* Add some preconditionsMatthias Clasen2021-01-231-0/+4
| | | | | The arguments to pango_attr_list_update are ints, but negative numbers don't make sense here.
* Fix attr iterators with overlapping attributesfix-nested-attributesMatthias Clasen2020-09-171-11/+6
| | | | | | | | | | | | | This broke when PangoAttrIterator was changed to use an array for the stack of current attributes, in dec6c0868ef2c36. We were not always walking the array in the right order. The first attribute to check is at the *end* of the array. This showed up as misrendering in epsilon_0 example in gtk3-demo's text view markup demo. Test included.
* Adjust "Since" tags to refer to 1.46Rico Tzschichholz2020-08-061-2/+2
|
* pango-attributes.c: Fix on older compilersChun-wei Fan2020-06-241-2/+4
| | | | | Avoid declaring a variables in a for loop initialization, so that we won't accidentally break building on older compilers.
* Fix crashes with empty attribute listsMatthias Clasen2020-06-221-52/+54
| | | | | | | | There were a few cases left where empty attribute lists could lead to crashes. This was observed causing crashes in gnumeric. Testcases included.
* Fix another problem with pango_attr_list_changeMatthias Clasen2020-06-171-7/+11
| | | | | This was showing up as the colored Google link in the gtk4-demo links demo losing its colors.
* Fix a crash in pango_attr_list_equalMatthias Clasen2020-06-101-0/+3
| | | | | When allowing attributes to be NULL, we need to take that into account here too.
* Fix pango_attr_list_changeMatthias Clasen2020-06-101-3/+9
| | | | | | There were some breakage introduced in the porting to GPtrArray - we sometimes ran into assertions, and sometimes forgot to add the new attribute altogether.
* attrs: Save attribute list in a GPtrArrayTimm Bäder2020-06-101-301/+225
|
* attrlist: Remove attributes_tailTimm Bäder2020-06-101-24/+11
| | | | It's only very rarely used, and will become even less important later.
* attrs: Save iterator stack in a GPtrArrayTimm Bäder2020-06-101-58/+70
| | | | One less linked list.
* layout: Treat empty attr lists like NULL onesTimm Bäder2020-06-081-1/+1
|
* attributes: Add _pango_attr_list_has_attributesTimm Bäder2020-06-081-0/+6
| | | | A private function to find empty attribute lists
* Allocate internal PangoAttrLists on the stackTimm Bäder2020-06-081-23/+27
|
* Allocate internal PangoAttrListIterators on the stackTimm Bäder2020-06-081-17/+23
|
* Add API to compare PangoAttrListsJonas Dreßler2020-06-071-0/+76
| | | | | | | | | | | | | | Add a new `pango_attr_list_equal` API that allows comparing the attributes included in two PangoAttrLists and returns TRUE if the lists contain the same attributes and apply to the same ranges. The function avoids any copying of attributes or lists and applies a minor optimization of skipping the equality check for attributes that were already found in both lists. Other possible optimizations that could be added if necessary would be storing the length of the attributes list in the PangoAttrList class to avoid the `g_slist_length` calls or reusing the `other_iter` pointer in case all attributes from 0 to n were already found.
* Add missing "transfer none" annotation to pango_attr_iterator_get()Rico Tzschichholz2019-11-211-1/+1
|
* Add an overline attributeMatthias Clasen2019-10-311-0/+54
| | | | | | | | | | Add a new PangoOverline enum, and overline and overline_color attributes, which parallel the attributes we have for underlines and strikethrough. For now, the enum just has 'none' and 'single' values.
* Add an insert-hyphens attributeMatthias Clasen2019-08-041-0/+27
| | | | | | | | | Add a text attribute that allows to suppress insertion of hyphens at intra-word line breaks. This is useful for non-paragraph-like contexts, where line breaks are needed, but hyphens are not expected.
* Add a boxed type for PangoAttrIteratorEmmanuele Bassi2019-08-021-0/+5
| | | | | | | | Makes it usable by language bindings, and avoids warnings when generating introspection data. We already have the necessary public API, we're just missing a GType for it.
* Ensure arguments name match the documentationEmmanuele Bassi2019-08-021-1/+1
| | | | Otherwise the introspection scanner will be majorly confused.
* Add an attribute for showing invisible charsMatthias Clasen2019-07-251-0/+25
| | | | | Allow to opt-in to showing spaces, line breaks, and default-ignorable chars, separately.
* doc cleanupsMatthias Clasen2019-07-231-2/+2
| | | | Clean up some headers, and shovel docs around.