| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Add functions to cast PangoAttribute to the various
struct types, so language bindings can get at the
payload.
Fixes: #476
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
pango_attr_list_change was returning early in one
case, missing to do some necessary cleanup of the
list.
Fixes: #564
|
|
|
|
| |
Fixes https://gitlab.gnome.org/GNOME/pango/-/issues/565
|
|
|
|
|
| |
Now that gi-docgen warns about link syntax errors,
we can find and fix them.
|
|
|
|
|
| |
When calling pango_attr_list_update(), we must not
change the limits or attributes that are unlimited.
|
|\
| |
| |
| |
| | |
docs: Fix link syntax in a few places
See merge request GNOME/pango!337
|
| | |
|
|/
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Remove leftovers like #Type, reduce indentations
to avoid markdown block quotes, etc.
|
|
|
|
|
| |
The allow-none annotation has been deprecated for a long
time already. Instead use optional and nullable everywhere.
|
|
|
|
| |
All these were pointed out by gi-docgen warnings.
|
|
|
|
| |
Give doc comments summaries, etc.
|
|
|
|
| |
Replace gtk-doc'isms and use gi-docgen links instead.
|
| |
|
|
|
|
|
| |
We want to use pure markdown, since docbook
is going away as the intermediate format.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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
|
|
|
|
|
| |
The arguments to pango_attr_list_update are ints,
but negative numbers don't make sense here.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Avoid declaring a variables in a for loop initialization, so that we
won't accidentally break building on older compilers.
|
|
|
|
|
|
|
|
| |
There were a few cases left where empty attribute
lists could lead to crashes. This was observed causing
crashes in gnumeric.
Testcases included.
|
|
|
|
|
| |
This was showing up as the colored Google link
in the gtk4-demo links demo losing its colors.
|
|
|
|
|
| |
When allowing attributes to be NULL, we need
to take that into account here too.
|
|
|
|
|
|
| |
There were some breakage introduced in the porting
to GPtrArray - we sometimes ran into assertions, and
sometimes forgot to add the new attribute altogether.
|
| |
|
|
|
|
| |
It's only very rarely used, and will become even less important later.
|
|
|
|
| |
One less linked list.
|
| |
|
|
|
|
| |
A private function to find empty attribute lists
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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 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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Otherwise the introspection scanner will be majorly confused.
|
|
|
|
|
| |
Allow to opt-in to showing spaces, line breaks,
and default-ignorable chars, separately.
|
|
|
|
| |
Clean up some headers, and shovel docs around.
|
|\
| |
| |
| |
| | |
Better hyphens
See merge request GNOME/pango!89
|
| |
| |
| |
| |
| | |
Add a new attribute type, and parse allow_breaks="false"
in markup. This is useful to prevent hyphenation of words.
|
| |
| |
| |
| | |
Ensure that we declare variables at the top of the block.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a function that can update positions of
attributes as the underlying text is changing.
This is meant to be used to update an attribute
list as text transformations are applied, like
capitalization.
|
|/
|
|
|
| |
This was a gap in the attribute api - no way
to get attributes back out of a list.
|
| |
|
|
|
|
|
|
| |
Based on a patch by Matijs van Zuijlen <matijs@matijs.net>.
Closes https://gitlab.gnome.org/GNOME/pango/issues/259
|