aboutsummaryrefslogtreecommitdiffstats
path: root/common/pango.c
Commit message (Collapse)AuthorAge
* Use format_str() throughoutLibravatar Simon Ser2023-04-14
|
* Reuse parsed PangoFontDescriptionLibravatar Hugo Osvaldo Barrera2022-07-01
| | | | Avoids parsing the configured font each time text is rendered.
* Reject font values that are invalid for pangoLibravatar Hugo Osvaldo Barrera2022-07-01
| | | | | | | | | Use pango to parse font configuration early, and reject the command as invalid if the value is invalid for pango. Since we're already parsing the font into a `PangoFontDescription`, keep that instance around and avoid re-parsing the font each time we render text. Fixes: https://github.com/swaywm/sway/issues/6805
* Avoid unecessary font metric calculationsLibravatar Hugo Osvaldo Barrera2021-09-20
| | | | | | | | | | | | | | | | | | | | | Prior to 62d90a8e, titlebar's font height (and other related values) would change any time any titlebar's content changed, so these values were recalculated each time any titlebar's content changed (or a new titlebar was created). However, since the above was merge, these values no longer change so often and we only need to recalculate them when the configured font changes (and stop calling `config_update_font_height` each time titlebars are rendered). This commit removes all the unecessary calls to this function and avoids all those unecessary calculations. Whenever the font strays from the default value, the `font` command is called, and it calls `config_update_font_height`, which is enough to keep the value always up to date. I've also added a default value to the `font_baseline` config, since otherwise that's zero for setups that don't explicitly specify a font.
* Rename pango_printf to render_textLibravatar Simon Ser2021-09-13
| | | | | This avoids using the pango_ prefix, reserved for functions coming from the Pango library.
* Use fixed titlebar heightsLibravatar Hugo Osvaldo Barrera2021-08-26
| | | | | | | | | | | | | | | Use fixed titlebar heights. The default height is calculated based on font metrics for the configured font and current locale. Some testing with titles with emoji and CJK characters (which are substantially higher in my setup) shows that the titlebars retain their initial value, text does shift up or down, and all titlebars always remain aligned. Also drop some also now-unecessary title_height calculations. Makes also needed to be updated, since they should be positioned with the same rules.
* cairo: Replace <cairo/cairo.h> by <cairo.h>Libravatar Issam E. Maghni2021-05-10
| | | | | | | For full context, read https://gitlab.freedesktop.org/cairo/cairo/-/issues/479 TL;DR, cairo’s pc file adds `/cairo` to CFLAGS. So namespace cairo shouldn’t be used.
* Replace wlr_log with sway_logLibravatar M Stoeckl2019-01-21
| | | | | | | | | | | | | This commit mostly duplicates the wlr_log functions, although with a sway_* prefix. (This is very similar to PR #2009.) However, the logging function no longer needs to be replaceable, so sway_log_init's second argument is used to set the exit callback for sway_abort. wlr_log_init is still invoked in sway/main.c This commit makes it easier to remove the wlroots dependency for the helper programs swaymsg, swaybg, swaybar, and swaynag.
* Allocate minimum size necessary in pango text functions. (#3473)Libravatar Connor Edwards2019-01-20
| | | | | | * Allocate minimum size necessary in pango text functions. * Handle malloc failure.
* Use static arrays where possible.Libravatar Connor E2019-01-16
|
* Remove usage of VLAs.Libravatar Connor E2019-01-16
|
* Fix stringop-overflow warningsLibravatar Niccolò Scatena2018-10-17
|
* Truncate message, append buffer overflow message if too long.Libravatar Connor E2018-10-16
| | | | | | | | Increase buffer size, remove macros. Make variables lowercase. Some more feedback.
* Call pango_cairo_context_set_font_options().Libravatar Geoff Greer2018-09-22
| | | | Call pango_cairo_context_set_font_options() before pango_cairo_update_layout() and pango_cairo_show_layout(). By default, Pango "merges" the Cario font options with its own, which doesn't enable full hinting.
* Use pango_layout_set_text instead of pango_layout_set_markupLibravatar Ryan Dwyer2018-09-22
|
* Fix pango escaping and refactor escape_markup_textLibravatar Ryan Dwyer2018-09-22
| | | | | | | | | | | | | | Fixes #2674. The cause of the issue was in get_pango_layout. When we call pango_parse_markup, `text` is the escaped string, and the unescaped string is then computed and written to `buf`. We were then passing the unescaped string to pango_layout_set_markup, but this function needs the escaped string. `buf` is not needed and has been removed. The other part of this PR refactors escape_markup_text to remove the dest_length argument and removes the -1 return value on error. It now assumes that you've allocated dest to the correct length.
* Align titles to baselineLibravatar Ryan Dwyer2018-09-08
| | | | | | | | | | | | | This does the following: * Adds a baseline argument to get_text_size (the baseline is the distance from the top of the texture to the baseline). * Stores the baseline in the container when calculating the title height. * Takes the baseline into account when calculating the config's max font height. * When rendering, pads the textures according to the baseline so they line up.
* Update for swaywm/wlroots#1126Libravatar emersion2018-07-09
|
* Change scale from int32_t to double for pangoLibravatar Brian Ashworth2018-05-16
|
* Fix pango markupLibravatar emersion2018-05-13
| | | | | | | The condition checking if the markup is valid was inverted. This commit also adds better error handling: if the markup cannot be parsed, it fallbacks to plain text.
* Fix crash when using pango markup fontLibravatar Heghedus Razvan2018-05-13
| | | | | | The characters & < > ' " needs to be escaped when using pango markup Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
* Fix use-after-free with block hotspotsLibravatar Drew DeVault2018-04-02
|
* Use statically allocated text bufferLibravatar Drew DeVault2018-03-29
|
* Start port of swaybar to layer shellLibravatar Drew DeVault2018-03-29
This starts up the event loop and wayland display and shims out the basic top level rendering concepts. Also includes some changes to incorporate pango into the 1.x codebase properly.