Skip to content

Separate System and Galaxy pan speeds - #362

Draft
Guffawaffle wants to merge 6 commits into
STFC-Mod:devfrom
Guffawaffle:science/system-pan-controls
Draft

Guffawaffle wants to merge 6 commits into
STFC-Mod:devfrom
Guffawaffle:science/system-pan-controls

Conversation

@Guffawaffle

@Guffawaffle Guffawaffle commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Add independent graphics.system_pan_speed and graphics.galaxy_pan_speed multipliers for mouse/touch and keyboard panning. Both default to 1.0. Each pan controller selects its own setting, so a faster Galaxy view leaves System panning unchanged. The existing system_pan_speed key now affects System view only.

Apply the configured glide falloff once in both native and mod hotkey modes, preserve recognizer-owned dragging, and retain effective movement for subsequent glide. Limit system_pan_momentum_falloff to 0…0.99 so saved values cannot sustain or accelerate a glide. These controls work without experimental mode; the unused legacy momentum key remains readable for compatibility.

Pan speeds accept 0.1–10; zero and smaller values fall back to normal speed (1.0).

@Guffawaffle Guffawaffle changed the title Wire pan speed and momentum falloff Separate System and Galaxy pan speeds Nov 14, 2026
Comment thread src/mod/config.cc
Comment on lines 617 to +627
if (control.enable_experimental)
r.Read("graphics", "system_pan_momentum", g.system_pan_momentum);
r.Read("graphics", "system_pan_momentum_falloff", g.system_pan_momentum_falloff);
r.ReadValid("graphics", "system_pan_momentum_falloff", g.system_pan_momentum_falloff,
[](float v) { return std::isfinite(v); });
const auto bounded_falloff = std::clamp(g.system_pan_momentum_falloff, 0.0f, 0.99f);
if (g.system_pan_momentum_falloff != bounded_falloff) {
spdlog::warn("config graphics.system_pan_momentum_falloff: '{}' clamped to {}", g.system_pan_momentum_falloff,
bounded_falloff);
g.system_pan_momentum_falloff = bounded_falloff;
r.Record("graphics", "system_pan_momentum_falloff", bounded_falloff);
}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One part is marked Experimental, which means it won't take effect where the rest does? This seems inconsistent to me. Either we should make it all experimental or none.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants