From 3adc2c44e63073f38b5cf4868efe94d817d9c8c7 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 18 Jan 2025 16:05:11 +0100 Subject: [PATCH] fix: Font customization not unlocking correctly --- .../source/content/settings_entries.cpp | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/plugins/builtin/source/content/settings_entries.cpp b/plugins/builtin/source/content/settings_entries.cpp index 7386a5f3d..a42281aab 100644 --- a/plugins/builtin/source/content/settings_entries.cpp +++ b/plugins/builtin/source/content/settings_entries.cpp @@ -671,18 +671,17 @@ namespace hex::plugin::builtin { customFont = true; } + bool pixelPerfectFontSelected = false; if (ImGui::BeginCombo(name.c_str(), pathPreview.c_str())) { - if (ImGui::Selectable("Pixel-Perfect Default Font (Proggy Clean)", m_path.empty() && pixelPerfectFont)) { m_path.clear(); changed = true; - ContentRegistry::Settings::write("hex.builtin.setting.font", "hex.builtin.setting.font.pixel_perfect_default_font", true); + pixelPerfectFontSelected = true; } if (ImGui::Selectable("Smooth Default Font (JetbrainsMono)", m_path.empty() && !pixelPerfectFont)) { m_path.clear(); changed = true; - ContentRegistry::Settings::write("hex.builtin.setting.font", "hex.builtin.setting.font.pixel_perfect_default_font", false); } if (ImGui::Selectable("Custom Font", customFont)) { @@ -701,8 +700,19 @@ namespace hex::plugin::builtin { ImGui::EndCombo(); } + if (changed) { + m_pixelPerfectFont = pixelPerfectFontSelected; + } + return changed; } + + bool isPixelPerfectFontSelected() const { + return m_pixelPerfectFont; + } + + private: + bool m_pixelPerfectFont = false; }; class SliderPoints : public ContentRegistry::Settings::Widgets::SliderFloat { @@ -929,7 +939,12 @@ namespace hex::plugin::builtin { auto customFontPathSetting = ContentRegistry::Settings::add("hex.builtin.setting.font", "hex.builtin.setting.font.custom_font", "hex.builtin.setting.font.font_path") .requiresRestart() - .setChangedCallback(scaleWarningHandler) + .setChangedCallback([scaleWarningHandler](Widgets::Widget &widget) { + scaleWarningHandler(widget); + + auto &fontPicker = static_cast(widget); + ContentRegistry::Settings::write("hex.builtin.setting.font", "hex.builtin.setting.font.pixel_perfect_default_font", fontPicker.isPixelPerfectFontSelected()); + }) .setEnabledCallback(customFontsEnabled); const auto customFontSettingsEnabled = [customFontEnabledSetting, customFontPathSetting] {