From dfbf5a8ed4d8cc521c941b160a0afbecc1df43b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Tue, 7 Nov 2023 20:51:33 +0100 Subject: fix: Avatar: Draw status circle correctly for scale > 1 --- gajim/gtk/avatar.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gajim/gtk/avatar.py b/gajim/gtk/avatar.py index b25419426..1f144c1f9 100644 --- a/gajim/gtk/avatar.py +++ b/gajim/gtk/avatar.py @@ -243,17 +243,20 @@ def get_show_circle(show: str | types.PresenceShowT, if not isinstance(show, str): show = show.value - size = size * scale - center = size / 2 - radius = size / 3 + width = size * scale + height = width - surface = cairo.ImageSurface(cairo.Format.ARGB32, size, size) + surface = cairo.ImageSurface(cairo.Format.ARGB32, width, height) + surface.set_device_scale(scale, scale) context = cairo.Context(surface) css_color = get_css_show_class(show) color = convert_rgb_string_to_float( app.css_config.get_value(css_color, StyleAttr.COLOR)) + center = size / 2 + radius = size / 3 + context.set_source_rgb(*color) context.set_operator(cairo.Operator.OVER) context.arc(center, center, radius, 0, 2 * pi) -- cgit v1.2.3