From 218265ad37d6118493820459d53fdb52c12f1e44 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 5 Jan 2026 19:44:42 +0300 Subject: [PATCH 1/2] wayland: Adjust scroll scaling Regular mice send a value of 15 for one wheel tick, not 8. This currently doesn't change anything about vertical scrolling since it's handled discretely, but that will change in the next commit. --- profiler/src/BackendWayland.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/profiler/src/BackendWayland.cpp b/profiler/src/BackendWayland.cpp index 0212b68f..949f3219 100644 --- a/profiler/src/BackendWayland.cpp +++ b/profiler/src/BackendWayland.cpp @@ -338,8 +338,8 @@ static void PointerFrame( void*, struct wl_pointer* pointer ) if( s_wheel ) { s_wheel = false; - s_wheelAxisX /= 8; - s_wheelAxisY /= 8; + s_wheelAxisX /= 15; + s_wheelAxisY /= 15; ImGuiIO& io = ImGui::GetIO(); io.AddMouseWheelEvent( wl_fixed_to_double( s_wheelAxisX ), wl_fixed_to_double( s_wheelAxisY ) ); s_wheelAxisX = s_wheelAxisY = 0; From 203f6cc508254f4041d98f33a71f16b28b1a2c9a Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 5 Jan 2026 19:46:37 +0300 Subject: [PATCH 2/2] timeline: Use fractional vertical scroll amount in calculation Before this commit, vertical scroll was always discrete. At least on Wayland, this caused extremely fast scrolling on touchpads (that send lots of small axis events) and on mice with high-resolution wheels (that also send lots of small axis events). After this commit, all of this scrolling works correctly, at a speed matching regular wheels. --- profiler/src/profiler/TracyView_Timeline.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/profiler/src/profiler/TracyView_Timeline.cpp b/profiler/src/profiler/TracyView_Timeline.cpp index 803fcb69..c3dc01b0 100644 --- a/profiler/src/profiler/TracyView_Timeline.cpp +++ b/profiler/src/profiler/TracyView_Timeline.cpp @@ -145,6 +145,7 @@ void View::HandleTimelineMouse( int64_t timespan, const ImVec2& wpos, float w ) else if( io.KeyShift ) mod = 0.5; mod *= m_verticalScrollMultiplier; + mod *= fabs( wheel ); if( wheel > 0 ) {