From c0857c715aa09fcfe0c47013db8be9365c6fef56 Mon Sep 17 00:00:00 2001 From: falken10vdl Date: Wed, 28 Jan 2026 08:58:35 +0100 Subject: [PATCH] Refactor scale_font_size to improve DPI and pixel size handling for better font scaling --- src/bonsai/bonsai/tool/blender.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index b10f88b3f2..4aa67685a7 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -1572,12 +1572,17 @@ class Blender(bonsai.core.tool.Blender): @classmethod def scale_font_size(cls, size): + default_dpi = 72 + default_pixel_size = 1.0 ui_style = bpy.context.preferences.ui_styles[0] base_size = ui_style.widget.points if size is None else size - ui_scale = bpy.context.preferences.view.ui_scale - platform_scale = 2 if sys.platform == "darwin" else 1 - - return base_size * ui_scale * platform_scale + platform_scale = 0.5 if sys.platform == "darwin" else 1 + + default_scale = default_dpi * default_pixel_size + system = bpy.context.preferences.system + system_scale = system.dpi * system.pixel_size + return (system_scale / default_scale) * base_size *platform_scale + @classmethod def apply_transform_as_local(cls, obj: bpy.types.Object) -> bool: