diff --git a/src/gui/dialogs/preferences_dialog.cpp b/src/gui/dialogs/preferences_dialog.cpp index 5a61fd01208f..5593c2b72578 100644 --- a/src/gui/dialogs/preferences_dialog.cpp +++ b/src/gui/dialogs/preferences_dialog.cpp @@ -556,8 +556,9 @@ void tpreferences::initialize_members(twindow& window) set_idle_anim, set_idle_anim_rate, window); /** FONT SCALING **/ + // The setter is handled in post_show to avoid dynamically changing text tslider& scale_slider = find_widget(&window, "scaling_slider", false); - setup_single_slider("scaling_slider", font_scaling(), set_font_scaling, window); + scale_slider.set_value(font_scaling()); bind_status_label(scale_slider, "scaling_value", window, "%"); /** SELECT THEME **/ @@ -1040,4 +1041,10 @@ void tpreferences::on_tab_select(twindow& window, const std::string& widget_id) set_visible_page(window, static_cast(selected_row), (widget_id + "_pager")); } +void tpreferences::post_show(twindow& window) +{ + // Handle the font scaling setter only once prefs is closed + set_font_scaling(find_widget(&window, "scaling_slider", false).get_value()); +} + } // end namespace gui2 diff --git a/src/gui/dialogs/preferences_dialog.hpp b/src/gui/dialogs/preferences_dialog.hpp index 66637ff75b67..28a05cbb7450 100644 --- a/src/gui/dialogs/preferences_dialog.hpp +++ b/src/gui/dialogs/preferences_dialog.hpp @@ -55,6 +55,7 @@ class tpreferences : public tdialog /** Inherited from tdialog. */ void pre_show(CVideo& video, twindow& window); + void post_show(twindow& window); /** Initializers */ void initialize_members(twindow& window);