From 8e72cf2206b12e2686e7deef0422ef2293d37fe3 Mon Sep 17 00:00:00 2001 From: lenemter Date: Sat, 15 Mar 2025 12:55:45 +0300 Subject: [PATCH 1/2] Check for redacted font --- src/ScreenshotManager.vala | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/ScreenshotManager.vala b/src/ScreenshotManager.vala index 5606d47af..3bd696aff 100644 --- a/src/ScreenshotManager.vala +++ b/src/ScreenshotManager.vala @@ -15,6 +15,28 @@ public class Gala.ScreenshotManager : Object { [DBus (visible = false)] public NotificationsManager notifications_manager { get; construct; } + private bool? _is_redacted_font_available = null; + private bool is_redacted_font_available { + get { + if (_is_redacted_font_available != null) { + return _is_redacted_font_available; + } + + (unowned Pango.FontFamily)[] families; + Pango.CairoFontMap.get_default ().list_families (out families); + + _is_redacted_font_available = false; + foreach (unowned var family in families) { + if (family.get_name () == "Redacted Script") { + _is_redacted_font_available = true; + break; + } + } + + return _is_redacted_font_available; + } + } + private Settings desktop_settings; private string prev_font_regular; @@ -316,7 +338,7 @@ public class Gala.ScreenshotManager : Object { } private void unconceal_text () { - if (conceal_timeout == 0) { + if (!is_redacted_font_available || conceal_timeout == 0) { return; } @@ -329,6 +351,10 @@ public class Gala.ScreenshotManager : Object { } public async void conceal_text () throws DBusError, IOError { + if (!is_redacted_font_available) { + return; + } + if (conceal_timeout > 0) { Source.remove (conceal_timeout); } else { From 9fa91d99698145b30a8c4a137c7e4a1911c63054 Mon Sep 17 00:00:00 2001 From: lenemter Date: Sun, 16 Mar 2025 15:27:17 +0300 Subject: [PATCH 2/2] Throw error --- src/ScreenshotManager.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ScreenshotManager.vala b/src/ScreenshotManager.vala index 3bd696aff..01590f552 100644 --- a/src/ScreenshotManager.vala +++ b/src/ScreenshotManager.vala @@ -352,7 +352,7 @@ public class Gala.ScreenshotManager : Object { public async void conceal_text () throws DBusError, IOError { if (!is_redacted_font_available) { - return; + throw new DBusError.FAILED ("Redacted font is not installed."); } if (conceal_timeout > 0) {