From 35e8acd69db3d0fdd6dde570eed42f89aa887e5e Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 25 Jan 2025 15:50:52 +0100 Subject: [PATCH] impr: Only enable font config Apply button when setting has changed --- plugins/fonts/include/font_settings.hpp | 2 ++ plugins/fonts/source/font_settings.cpp | 17 +++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/plugins/fonts/include/font_settings.hpp b/plugins/fonts/include/font_settings.hpp index fd92810a3..5bb3ffe0d 100644 --- a/plugins/fonts/include/font_settings.hpp +++ b/plugins/fonts/include/font_settings.hpp @@ -52,6 +52,8 @@ namespace hex::fonts { FontFilePicker m_fontFilePicker; SliderPoints m_fontSize; ContentRegistry::Settings::Widgets::Checkbox m_bold, m_italic, m_antiAliased; + + bool m_applyEnabled = false; }; ContentRegistry::Settings::Widgets::Widget::Interface& addFontSettingsWidget(UnlocalizedString name); diff --git a/plugins/fonts/source/font_settings.cpp b/plugins/fonts/source/font_settings.cpp index 288486249..bf4b69dd0 100644 --- a/plugins/fonts/source/font_settings.cpp +++ b/plugins/fonts/source/font_settings.cpp @@ -153,20 +153,25 @@ namespace hex::fonts { bool FontSelector::drawPopup() { bool changed = false; if (ImGui::BeginPopup("Fonts")) { - m_fontFilePicker.draw("hex.fonts.setting.font.custom_font"_lang); + if (m_fontFilePicker.draw("hex.fonts.setting.font.custom_font"_lang)) m_applyEnabled = true; ImGui::BeginDisabled(m_fontFilePicker.isPixelPerfectFontSelected()); { - m_fontSize.draw("hex.fonts.setting.font.font_size"_lang); - m_bold.draw("hex.fonts.setting.font.font_bold"_lang); - m_italic.draw("hex.fonts.setting.font.font_italic"_lang); - m_antiAliased.draw("hex.fonts.setting.font.font_antialias"_lang); + if (m_fontSize.draw("hex.fonts.setting.font.font_size"_lang)) m_applyEnabled = true; + if (m_bold.draw("hex.fonts.setting.font.font_bold"_lang)) m_applyEnabled = true; + if (m_italic.draw("hex.fonts.setting.font.font_italic"_lang)) m_applyEnabled = true; + if (m_antiAliased.draw("hex.fonts.setting.font.font_antialias"_lang)) m_applyEnabled = true; } ImGui::EndDisabled(); ImGui::NewLine(); - if (ImGui::Button("hex.ui.common.apply"_lang)) + + ImGui::BeginDisabled(!m_applyEnabled); + if (ImGui::Button("hex.ui.common.apply"_lang)) { changed = true; + m_applyEnabled = false; + } + ImGui::EndDisabled(); ImGui::EndPopup(); }