diff options
author | Sam Atkins <atkinssj@serenityos.org> | 2022-05-11 17:42:45 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-05-12 13:10:49 +0200 |
commit | 17b41f0d6183bc837601cb10cc2f9d84a47eb90d (patch) | |
tree | c1a1b8eacf44fe514eb727dcb40c693152456b28 /Userland/Applications/MouseSettings/MouseWidget.cpp | |
parent | 7d6f5f19fd6db5d83537bec1a7d36666ce9d9c2a (diff) | |
download | serenity-17b41f0d6183bc837601cb10cc2f9d84a47eb90d.zip |
MouseSettings: Set window modified state
Diffstat (limited to 'Userland/Applications/MouseSettings/MouseWidget.cpp')
-rw-r--r-- | Userland/Applications/MouseSettings/MouseWidget.cpp | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/Userland/Applications/MouseSettings/MouseWidget.cpp b/Userland/Applications/MouseSettings/MouseWidget.cpp index c73c66be04..0b375b1223 100644 --- a/Userland/Applications/MouseSettings/MouseWidget.cpp +++ b/Userland/Applications/MouseSettings/MouseWidget.cpp @@ -25,28 +25,41 @@ MouseWidget::MouseWidget() m_speed_label = *find_descendant_of_type_named<GUI::Label>("speed_label"); m_speed_slider = *find_descendant_of_type_named<GUI::HorizontalSlider>("speed_slider"); m_speed_slider->set_range(WindowServer::mouse_accel_min * speed_slider_scale, WindowServer::mouse_accel_max * speed_slider_scale); - m_speed_slider->on_change = [&](int value) { - m_speed_label->set_text(String::formatted("{} %", value)); - }; int const slider_value = float { speed_slider_scale } * GUI::ConnectionToWindowServer::the().get_mouse_acceleration(); - m_speed_slider->set_value(slider_value); + m_speed_slider->set_value(slider_value, GUI::AllowCallback::No); + m_speed_slider->on_change = [&](int) { + update_speed_label(); + set_modified(true); + }; m_scroll_length_spinbox = *find_descendant_of_type_named<GUI::SpinBox>("scroll_length_spinbox"); m_scroll_length_spinbox->set_min(WindowServer::scroll_step_size_min); - m_scroll_length_spinbox->set_value(GUI::ConnectionToWindowServer::the().get_scroll_step_size()); + m_scroll_length_spinbox->set_value(GUI::ConnectionToWindowServer::the().get_scroll_step_size(), GUI::AllowCallback::No); + m_scroll_length_spinbox->on_change = [&](auto) { + set_modified(true); + }; m_double_click_arrow_widget = *find_descendant_of_type_named<MouseSettings::DoubleClickArrowWidget>("double_click_arrow_widget"); m_double_click_speed_label = *find_descendant_of_type_named<GUI::Label>("double_click_speed_label"); m_double_click_speed_slider = *find_descendant_of_type_named<GUI::HorizontalSlider>("double_click_speed_slider"); m_double_click_speed_slider->set_min(WindowServer::double_click_speed_min); m_double_click_speed_slider->set_max(WindowServer::double_click_speed_max); + m_double_click_speed_slider->set_value(GUI::ConnectionToWindowServer::the().get_double_click_speed(), GUI::AllowCallback::No); m_double_click_speed_slider->on_change = [&](int speed) { m_double_click_arrow_widget->set_double_click_speed(speed); - m_double_click_speed_label->set_text(String::formatted("{} ms", speed)); + update_double_click_speed_label(); + set_modified(true); }; - m_double_click_speed_slider->set_value(GUI::ConnectionToWindowServer::the().get_double_click_speed()); + m_switch_buttons_checkbox = *find_descendant_of_type_named<GUI::CheckBox>("switch_buttons_input"); - m_switch_buttons_checkbox->set_checked(GUI::ConnectionToWindowServer::the().get_buttons_switched()); + m_switch_buttons_checkbox->set_checked(GUI::ConnectionToWindowServer::the().get_buttons_switched(), GUI::AllowCallback::No); + m_switch_buttons_checkbox->on_checked = [&](auto) { + set_modified(true); + }; + + update_speed_label(); + update_double_click_speed_label(); + m_double_click_arrow_widget->set_double_click_speed(m_double_click_speed_slider->value()); } void MouseWidget::apply_settings() @@ -65,3 +78,13 @@ void MouseWidget::reset_default_values() m_double_click_speed_slider->set_value(double_click_speed_default); m_switch_buttons_checkbox->set_checked(false); } + +void MouseWidget::update_speed_label() +{ + m_speed_label->set_text(String::formatted("{} %", m_speed_slider->value())); +} + +void MouseWidget::update_double_click_speed_label() +{ + m_double_click_speed_label->set_text(String::formatted("{} ms", m_double_click_speed_slider->value())); +} |