aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-05 01:38:34 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-05 01:38:34 +0800
commit7b35df871444842976e3b8389825f39a4267a270 (patch)
tree11d3e8e10f6b5ba2d7484190fc43a9d06f038d8a /Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp
parentef66f6736dc0150c680afba4992b67970dbab992 (diff)
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
Diffstat (limited to 'Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp')
-rw-r--r--Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp
index 544fedc0..04852e97 100644
--- a/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp
+++ b/Minecraft.Client/Common/UI/IUIScene_CreativeMenu.cpp
@@ -1098,7 +1098,15 @@ void IUIScene_CreativeMenu::handleAdditionalKeyPress(int iAction)
}
break;
case ACTION_MENU_OTHER_STICK_DOWN:
- ++m_tabPage[m_curTab];
+ {
+ int pageStep = TabSpec::rows;
+#ifdef _WINDOWS64
+ if (g_KBMInput.WasMouseWheelConsumed())
+ {
+ pageStep = 1;
+ }
+#endif
+ m_tabPage[m_curTab] += pageStep;
if(m_tabPage[m_curTab] >= specs[m_curTab]->getPageCount())
{
m_tabPage[m_curTab] = specs[m_curTab]->getPageCount() - 1;
@@ -1107,9 +1115,18 @@ void IUIScene_CreativeMenu::handleAdditionalKeyPress(int iAction)
{
switchTab(m_curTab);
}
+ }
break;
case ACTION_MENU_OTHER_STICK_UP:
- --m_tabPage[m_curTab];
+ {
+ int pageStep = TabSpec::rows;
+#ifdef _WINDOWS64
+ if (g_KBMInput.WasMouseWheelConsumed())
+ {
+ pageStep = 1;
+ }
+#endif
+ m_tabPage[m_curTab] -= pageStep;
if(m_tabPage[m_curTab] < 0)
{
m_tabPage[m_curTab] = 0;
@@ -1118,6 +1135,7 @@ void IUIScene_CreativeMenu::handleAdditionalKeyPress(int iAction)
{
switchTab(m_curTab);
}
+ }
break;
}
}