diff --git a/lib/Text.vala b/lib/Text.vala new file mode 100644 index 000000000..6b181c17c --- /dev/null +++ b/lib/Text.vala @@ -0,0 +1,33 @@ +/* + * SPDX-License-Identifier: GPL-3.0-or-later + * SPDX-FileCopyrightText: 2025 elementary, Inc. (https://elementary.io) + */ + +/* + * Clutter.Text that automatically changes font-name to the system one + */ +public class Gala.Text : Clutter.Text { + private static GLib.Settings gnome_interface_settings; + + static construct { + gnome_interface_settings = new GLib.Settings ("org.gnome.desktop.interface"); + } + + construct { + set_system_font_name (); + gnome_interface_settings.changed["font-name"].connect (set_system_font_name); + } + + private void set_system_font_name () { + var name = gnome_interface_settings.get_string ("font-name").split (" "); + var last_element_index = name.length - 1; + + if (int.try_parse (name[last_element_index])) { // if last element is a font-size + name[last_element_index] = "12"; // hardcode size (can be changed later if needed) + } else { + name += "12"; + } + + font_name = string.joinv (" ", name); + } +} diff --git a/lib/meson.build b/lib/meson.build index 5365300ea..7b8ec254a 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -17,6 +17,7 @@ gala_lib_sources = files( 'Plugin.vala', 'RoundedCornersEffect.vala', 'ShadowEffect.vala', + 'Text.vala', 'Utils.vala', 'WindowIcon.vala', 'WindowManager.vala', diff --git a/src/Widgets/MultitaskingView/Tooltip.vala b/src/Widgets/MultitaskingView/Tooltip.vala index c5010e339..c6d7f954d 100644 --- a/src/Widgets/MultitaskingView/Tooltip.vala +++ b/src/Widgets/MultitaskingView/Tooltip.vala @@ -25,7 +25,7 @@ public class Gala.Tooltip : Clutter.Actor { (uint8) Drawing.Color.TOOLTIP_TEXT_COLOR.alpha * uint8.MAX, }; - text_actor = new Clutter.Text () { + text_actor = new Gala.Text () { margin_left = 6, margin_top = 6, margin_bottom = 6, diff --git a/src/Widgets/WindowSwitcher/WindowSwitcher.vala b/src/Widgets/WindowSwitcher/WindowSwitcher.vala index 7b1260e52..9ad34e149 100644 --- a/src/Widgets/WindowSwitcher/WindowSwitcher.vala +++ b/src/Widgets/WindowSwitcher/WindowSwitcher.vala @@ -81,7 +81,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget { get_accessible ().accessible_name = _("Window switcher"); container.get_accessible ().accessible_role = LIST; - caption = new Clutter.Text () { + caption = new Gala.Text () { font_name = CAPTION_FONT_NAME, ellipsize = END, line_alignment = CENTER