mirror of
https://github.com/LCEMP/LCEMP.git
synced 2026-04-27 09:23:57 +00:00
fix: proper kbm and controller input
This commit is contained in:
parent
43d20374a4
commit
f83a6ab2e5
|
|
@ -471,7 +471,7 @@ void IUIScene_AbstractContainerMenu::onMouseTick()
|
|||
#endif
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
if (!g_KBMInput.IsMouseGrabbed())
|
||||
if (!g_KBMInput.IsMouseGrabbed() && g_KBMInput.IsKBMActive())
|
||||
{
|
||||
int deltaX = g_KBMInput.GetMouseDeltaX();
|
||||
int deltaY = g_KBMInput.GetMouseDeltaY();
|
||||
|
|
@ -716,7 +716,7 @@ void IUIScene_AbstractContainerMenu::onMouseTick()
|
|||
// If there is no stick input, and we are over a slot, then snap pointer to slot centre.
|
||||
// 4J - TomK - only if this particular component allows so!
|
||||
#ifdef _WINDOWS64
|
||||
if(g_KBMInput.IsMouseGrabbed() && CanHaveFocus(eSectionUnderPointer))
|
||||
if((g_KBMInput.IsMouseGrabbed() || !g_KBMInput.IsKBMActive()) && CanHaveFocus(eSectionUnderPointer))
|
||||
#else
|
||||
if(CanHaveFocus(eSectionUnderPointer))
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -691,7 +691,7 @@ void UIController::tickInput()
|
|||
#endif
|
||||
{
|
||||
#ifdef _WINDOWS64
|
||||
if (!g_KBMInput.IsMouseGrabbed())
|
||||
if (!g_KBMInput.IsMouseGrabbed() && g_KBMInput.IsKBMActive())
|
||||
{
|
||||
UIScene *pScene = NULL;
|
||||
for (int grp = 0; grp < eUIGroup_COUNT && !pScene; ++grp)
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ void UIScene_AbstractContainerMenu::handleDestroy()
|
|||
g_savedInventoryCursorPos.y = m_pointerPos.y;
|
||||
g_savedInventoryCursorPos.hasSavedPos = true;
|
||||
|
||||
g_KBMInput.SetScreenCursorHidden(false);
|
||||
g_KBMInput.SetCursorHiddenForUI(false);
|
||||
#endif
|
||||
|
||||
|
|
@ -82,6 +83,7 @@ void UIScene_AbstractContainerMenu::InitDataAssociations(int iPad, AbstractConta
|
|||
void UIScene_AbstractContainerMenu::PlatformInitialize(int iPad, int startIndex)
|
||||
{
|
||||
#ifdef _WINDOWS64
|
||||
g_KBMInput.SetScreenCursorHidden(true);
|
||||
g_KBMInput.SetCursorHiddenForUI(true);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ void KeyboardMouseInput::Init()
|
|||
m_windowFocused = true;
|
||||
m_hasInput = false;
|
||||
m_kbmActive = true;
|
||||
m_screenWantsCursorHidden = false;
|
||||
|
||||
RAWINPUTDEVICE rid;
|
||||
rid.usUsagePage = 0x01; // HID_USAGE_PAGE_GENERIC
|
||||
|
|
|
|||
|
|
@ -69,6 +69,9 @@ public:
|
|||
void SetKBMActive(bool active) { m_kbmActive = active; }
|
||||
bool IsKBMActive() const { return m_kbmActive; }
|
||||
|
||||
void SetScreenCursorHidden(bool hidden) { m_screenWantsCursorHidden = hidden; }
|
||||
bool IsScreenCursorHidden() const { return m_screenWantsCursorHidden; }
|
||||
|
||||
float GetMoveX() const;
|
||||
float GetMoveY() const;
|
||||
|
||||
|
|
@ -112,6 +115,8 @@ private:
|
|||
bool m_hasInput;
|
||||
|
||||
bool m_kbmActive;
|
||||
|
||||
bool m_screenWantsCursorHidden;
|
||||
};
|
||||
|
||||
extern KeyboardMouseInput g_KBMInput;
|
||||
|
|
|
|||
|
|
@ -1204,6 +1204,14 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
|
|||
g_KBMInput.SetKBMActive(true);
|
||||
}
|
||||
|
||||
if (!g_KBMInput.IsMouseGrabbed())
|
||||
{
|
||||
if (!g_KBMInput.IsKBMActive())
|
||||
g_KBMInput.SetCursorHiddenForUI(true);
|
||||
else if (!g_KBMInput.IsScreenCursorHidden())
|
||||
g_KBMInput.SetCursorHiddenForUI(false);
|
||||
}
|
||||
|
||||
PIXEndNamedEvent();
|
||||
PIXBeginNamedEvent(0,"Profile manager tick");
|
||||
// ProfileManager.Tick();
|
||||
|
|
|
|||
Loading…
Reference in a new issue