From 97dc1585b19eab7addcd23f24cb1b8718e2eb472 Mon Sep 17 00:00:00 2001 From: davidot Date: Sat, 22 Oct 2022 14:41:52 +0200 Subject: [PATCH] WindowServer: Reset mouse acceleration if out of range Before if the mouse acceleration was out of range the WindowServer would crash, this could happen if the config had an out of range or non double vaule. --- Userland/Services/WindowServer/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Userland/Services/WindowServer/main.cpp b/Userland/Services/WindowServer/main.cpp index 05852851ba..8771a01412 100644 --- a/Userland/Services/WindowServer/main.cpp +++ b/Userland/Services/WindowServer/main.cpp @@ -128,7 +128,13 @@ ErrorOr serenity_main(Main::Arguments) auto& screen_input = WindowServer::ScreenInput::the(); screen_input.set_cursor_location(WindowServer::Screen::main().rect().center()); - screen_input.set_acceleration_factor(atof(wm_config->read_entry("Mouse", "AccelerationFactor", "1.0").characters())); + double f = atof(wm_config->read_entry("Mouse", "AccelerationFactor", "1.0").characters()); + if (f < WindowServer::mouse_accel_min || f > WindowServer::mouse_accel_max) { + dbgln("Mouse.AccelerationFactor out of range resetting to 1.0"); + f = 1.0; + wm_config->write_entry("Mouse", "AccelerationFactor", "1.0"); + } + screen_input.set_acceleration_factor(f); screen_input.set_scroll_step_size(wm_config->read_num_entry("Mouse", "ScrollStepSize", 4)); WindowServer::Compositor::the();