mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-05-21 21:03:50 +00:00
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:
parent
ef66f6736d
commit
7b35df8714
3 changed files with 28 additions and 3 deletions
|
|
@ -33,6 +33,7 @@ void KeyboardMouseInput::Init()
|
|||
m_mouseDeltaAccumX = 0;
|
||||
m_mouseDeltaAccumY = 0;
|
||||
m_mouseWheelAccum = 0;
|
||||
m_mouseWheelConsumed = false;
|
||||
m_mouseGrabbed = false;
|
||||
m_cursorHiddenForUI = false;
|
||||
m_windowFocused = true;
|
||||
|
|
@ -67,6 +68,7 @@ void KeyboardMouseInput::ClearAllState()
|
|||
m_mouseDeltaAccumX = 0;
|
||||
m_mouseDeltaAccumY = 0;
|
||||
m_mouseWheelAccum = 0;
|
||||
m_mouseWheelConsumed = false;
|
||||
}
|
||||
|
||||
void KeyboardMouseInput::Tick()
|
||||
|
|
@ -88,6 +90,7 @@ void KeyboardMouseInput::Tick()
|
|||
m_mouseDeltaY = m_mouseDeltaAccumY;
|
||||
m_mouseDeltaAccumX = 0;
|
||||
m_mouseDeltaAccumY = 0;
|
||||
m_mouseWheelConsumed = false;
|
||||
|
||||
m_hasInput = (m_mouseDeltaX != 0 || m_mouseDeltaY != 0 || m_mouseWheelAccum != 0);
|
||||
if (!m_hasInput)
|
||||
|
|
@ -172,6 +175,8 @@ void KeyboardMouseInput::OnMouseWheel(int delta)
|
|||
int KeyboardMouseInput::GetMouseWheel()
|
||||
{
|
||||
int val = m_mouseWheelAccum;
|
||||
if (val != 0)
|
||||
m_mouseWheelConsumed = true;
|
||||
m_mouseWheelAccum = 0;
|
||||
return val;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue