[pango/line-underline] renderer: Implement overlines
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/line-underline] renderer: Implement overlines
- Date: Mon, 19 Aug 2019 23:20:11 +0000 (UTC)
commit 977bbd6a9bd020894814be98df460b3b46347659
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Aug 20 01:18:51 2019 +0200
renderer: Implement overlines
This is currently implemented as an underline variant,
which may not be ideal, but avoids extra plumbing.
Closes: https://gitlab.gnome.org/GNOME/pango/issues/212
pango/pango-renderer.c | 11 +++++++++++
1 file changed, 11 insertions(+)
---
diff --git a/pango/pango-renderer.c b/pango/pango-renderer.c
index 51403785..c2917ec7 100644
--- a/pango/pango-renderer.c
+++ b/pango/pango-renderer.c
@@ -228,6 +228,7 @@ draw_underline (PangoRenderer *renderer,
case PANGO_UNDERLINE_SINGLE:
case PANGO_UNDERLINE_LOW:
case PANGO_UNDERLINE_SINGLE_LINE:
+ case PANGO_UNDERLINE_OVER_LINE:
pango_renderer_draw_rectangle (renderer,
PANGO_RENDER_PART_UNDERLINE,
rect->x,
@@ -331,6 +332,16 @@ add_underline (PangoRenderer *renderer,
case PANGO_UNDERLINE_LOW:
new_rect.y += ink_rect->y + ink_rect->height + underline_thickness;
break;
+ case PANGO_UNDERLINE_OVER_LINE:
+ new_rect.y += ink_rect->y - underline_thickness + underline_position;
+ if (state->underline == renderer->underline)
+ {
+ new_rect.y = MIN (current_rect->y, new_rect.y);
+ new_rect.height = MAX (current_rect->height, new_rect.height);
+ current_rect->y = new_rect.y;
+ current_rect->height = new_rect.height;
+ }
+ break;
case PANGO_UNDERLINE_SINGLE_LINE:
case PANGO_UNDERLINE_DOUBLE_LINE:
case PANGO_UNDERLINE_ERROR_LINE:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]