From 51b6b4750b939f0231ceba8dc7d6e67a6da8bcc5 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 18 Feb 2022 20:19:15 -0600 Subject: [PATCH] Don't update to visible arrow when cursor should be hidden --- .../PubUtilLib/plInputCore/plInputDevice.cpp | 5 +---- .../plInputCore/plInputInterfaceMgr.cpp | 18 ++++++++---------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp b/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp index 90846201..eec78f77 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp +++ b/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp @@ -408,7 +408,7 @@ void plMouseDevice::CreateCursor( char* cursor ) fCursor->SetPosition( 0, 0, 0 ); IUpdateCursorSize(); - fCursor->SetVisible( true ); + fCursor->SetVisible(!bCursorHidden); fCursor->SetOpacity( fOpacity ); } @@ -510,9 +510,6 @@ void plMouseDevice::NewCursor(char* cursor) fInstance->CreateCursor(cursor); fInstance->SetCursorX(fInstance->GetCursorX()); fInstance->SetCursorY(fInstance->GetCursorY()); - - if (!plMouseDevice::bCursorHidden) - fInstance->fCursor->SetVisible( true ); } void plMouseDevice::SetCursorOpacity( hsScalar opacity ) diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.cpp b/Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.cpp index c1077d98..eda837ab 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.cpp @@ -253,15 +253,13 @@ void plInputInterfaceMgr::IUpdateCursor( Int32 newCursor ) { char* mouseCursorResID; - - fCurrentCursor = newCursor; - if( fCurrentCursor == plInputInterface::kCursorHidden ) + if (newCursor == plInputInterface::kCursorHidden) { plMouseDevice::HideCursor(); - else - { - plMouseDevice::ShowCursor(); + } else { + if (fCurrentCursor == plInputInterface::kCursorHidden) + plMouseDevice::ShowCursor(); - switch( fCurrentCursor ) + switch(newCursor) { case plInputInterface::kCursorUp: mouseCursorResID = CURSOR_UP; break; case plInputInterface::kCursorLeft: mouseCursorResID = CURSOR_LEFT; break; @@ -286,12 +284,12 @@ void plInputInterfaceMgr::IUpdateCursor( Int32 newCursor ) case plInputInterface::kCursorHand: mouseCursorResID = CURSOR_HAND; break; case plInputInterface::kCursorUpward: mouseCursorResID = CURSOR_UPWARD; break; default: mouseCursorResID = CURSOR_OPEN; break; - } - - plMouseDevice::NewCursor( mouseCursorResID ); + plMouseDevice::NewCursor(mouseCursorResID); } + + fCurrentCursor = newCursor; } //// IEval ///////////////////////////////////////////////////////////////////