Fix controller paging regression in creative menu

Preserve smooth row-by-row scrolling for mouse wheel input, but restore
full-page movement for controller/menu scroll actions in the creative
inventory.

Commit 3093ca3 changed page indexing to support smooth scrolling, which
caused ACTION_MENU_OTHER_STICK_UP/DOWN to advance by one row instead of
one page. Track whether the scroll action originated from the mouse
wheel and only use single-row steps in that case.

Fixes #253
This commit is contained in:
daoge_cmd
2026-03-05 01:38:34 +08:00
parent ef66f6736d
commit 7b35df8714
3 changed files with 28 additions and 3 deletions

View File

@@ -59,7 +59,8 @@ public:
int GetMouseWheel();
int PeekMouseWheel() const { return m_mouseWheelAccum; }
void ConsumeMouseWheel() { m_mouseWheelAccum = 0; }
void ConsumeMouseWheel() { if (m_mouseWheelAccum != 0) m_mouseWheelConsumed = true; m_mouseWheelAccum = 0; }
bool WasMouseWheelConsumed() const { return m_mouseWheelConsumed; }
// Per-frame delta consumption for low-latency mouse look.
// Reads and clears the raw accumulators (not the per-tick snapshot).
@@ -114,6 +115,7 @@ private:
int m_mouseDeltaAccumY;
int m_mouseWheelAccum;
bool m_mouseWheelConsumed;
bool m_mouseGrabbed;