From 94571b51721e13639e2e1547c6120054c2761f90 Mon Sep 17 00:00:00 2001 From: josteph Date: Mon, 6 Nov 2017 00:26:52 +0000 Subject: [PATCH] display: Preserve checkbox status when re-creating them Makes the 'skip animation' checkbox retain its value when redrawing the window. Fixes #2176. --- src/display.cpp | 7 ++++++- src/widgets/button.hpp | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/display.cpp b/src/display.cpp index f4e842d5de2da..9f1d47e4c39b6 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -932,7 +932,12 @@ void display::create_buttons() } std::shared_ptr b_prev = find_action_button(b->id()); - if(b_prev) b->enable(b_prev->enabled()); + if(b_prev) { + b->enable(b_prev->enabled()); + if (b_prev->get_type() == gui::button::TYPE_CHECK) { + b->set_check(b_prev->checked()); + } + } action_work.push_back(b); } diff --git a/src/widgets/button.hpp b/src/widgets/button.hpp index 0f57b2fecdc78..f5ac4b4058194 100644 --- a/src/widgets/button.hpp +++ b/src/widgets/button.hpp @@ -31,6 +31,7 @@ class button : public widget }; enum TYPE { TYPE_PRESS, TYPE_CHECK, TYPE_TURBO, TYPE_IMAGE, TYPE_RADIO }; + TYPE get_type() const { return type_; }; enum SPACE_CONSUMPTION { DEFAULT_SPACE, MINIMUM_SPACE };