From 3b1e483a6cbfa6a95a5bc336b6321ac1145e4895 Mon Sep 17 00:00:00 2001 From: Qball Date: Fri, 3 Jan 2025 22:28:49 +0100 Subject: [PATCH] [Widget] Don't use cairo_push/pop_group as it causes issues. Seems to happen on nvidia systems, rendering to PNG surface is fine, problem is with rendering to screen. Hopefully this patch fixes it. Issue: #2068 --- source/widgets/widget.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/source/widgets/widget.c b/source/widgets/widget.c index 54f8c955..73dfdac1 100644 --- a/source/widgets/widget.c +++ b/source/widgets/widget.c @@ -250,9 +250,7 @@ void widget_draw(widget *wid, cairo_t *d) { cairo_restore(d); if (left != 0 || top != 0 || right != 0 || bottom != 0) { - // NOTE: Cairo group push/pop has same effect as cairo_save/cairo_restore, - // thus no need for these. - cairo_push_group(d); + cairo_save(d); cairo_set_operator(d, CAIRO_OPERATOR_ADD); cairo_translate(d, wid->x, wid->y); cairo_new_path(d); @@ -409,8 +407,7 @@ void widget_draw(widget *wid, cairo_t *d) { cairo_fill(d); } - cairo_pop_group_to_source(d); - cairo_paint(d); + cairo_restore(d); } } }