diff --git a/Applications/SystemMenu/PowerDialog.cpp b/Applications/SystemMenu/PowerDialog.cpp index 650ee23e89..b81f911353 100644 --- a/Applications/SystemMenu/PowerDialog.cpp +++ b/Applications/SystemMenu/PowerDialog.cpp @@ -82,20 +82,19 @@ PowerDialog::PowerDialog() header->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed); header->set_font(Gfx::Font::default_bold_font()); - int selected = -1; for (size_t i = 0; i < options.size(); i++) { auto action = options[i]; auto radio = main->add(); radio->set_enabled(action.enabled); radio->set_text(action.title); - radio->on_checked = [&selected, i](auto) { - selected = i; + radio->on_checked = [this, i](auto) { + m_selected_option = i; }; if (action.default_action) { radio->set_checked(true); - selected = i; + m_selected_option = i; } } @@ -104,8 +103,8 @@ PowerDialog::PowerDialog() button_box->layout()->set_spacing(8); auto ok_button = button_box->add(); - ok_button->on_click = [this, &selected](auto&) { - done(selected); + ok_button->on_click = [this](auto&) { + done(m_selected_option); }; ok_button->set_text("OK"); diff --git a/Applications/SystemMenu/PowerDialog.h b/Applications/SystemMenu/PowerDialog.h index a001c7f42f..1a1c18a8d3 100644 --- a/Applications/SystemMenu/PowerDialog.h +++ b/Applications/SystemMenu/PowerDialog.h @@ -36,4 +36,6 @@ public: private: PowerDialog(); ~PowerDialog(); + + int m_selected_option { -1 }; };