File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed
GeneralsMD/Code/GameEngine/Source/GameClient/Input
Generals/Code/GameEngine/Source/GameClient/Input Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -748,6 +748,21 @@ void Keyboard::update( void )
748748void Keyboard::resetKeys ( void )
749749{
750750
751+ // TheSuperHackers @fix Caball009 13/12/2025 Fix bug where game remains in waypoint mode
752+ // because the key up state for the alt key is not detected after alt tab.
753+ if (BitIsSet (m_keyStatus[KEY_LALT].state , KEY_STATE_DOWN))
754+ {
755+ GameMessage* msg = TheMessageStream->appendMessage (GameMessage::MSG_RAW_KEY_UP);
756+ msg->appendIntegerArgument (KEY_LALT);
757+ msg->appendIntegerArgument (KEY_STATE_UP);
758+ }
759+ else if (BitIsSet (m_keyStatus[KEY_RALT].state , KEY_STATE_DOWN))
760+ {
761+ GameMessage* msg = TheMessageStream->appendMessage (GameMessage::MSG_RAW_KEY_UP);
762+ msg->appendIntegerArgument (KEY_RALT);
763+ msg->appendIntegerArgument (KEY_STATE_UP);
764+ }
765+
751766 memset ( m_keys, 0 , sizeof ( m_keys ) );
752767 memset ( m_keyStatus, 0 , sizeof ( m_keyStatus ) );
753768 m_modifiers = KEY_STATE_NONE;
Original file line number Diff line number Diff line change @@ -748,6 +748,21 @@ void Keyboard::update( void )
748748void Keyboard::resetKeys ( void )
749749{
750750
751+ // TheSuperHackers @fix Caball009 13/12/2025 Fix bug where game remains in waypoint mode
752+ // because the key up state for the alt key is not detected after alt tab.
753+ if (BitIsSet (m_keyStatus[KEY_LALT].state , KEY_STATE_DOWN))
754+ {
755+ GameMessage* msg = TheMessageStream->appendMessage (GameMessage::MSG_RAW_KEY_UP);
756+ msg->appendIntegerArgument (KEY_LALT);
757+ msg->appendIntegerArgument (KEY_STATE_UP);
758+ }
759+ else if (BitIsSet (m_keyStatus[KEY_RALT].state , KEY_STATE_DOWN))
760+ {
761+ GameMessage* msg = TheMessageStream->appendMessage (GameMessage::MSG_RAW_KEY_UP);
762+ msg->appendIntegerArgument (KEY_RALT);
763+ msg->appendIntegerArgument (KEY_STATE_UP);
764+ }
765+
751766 memset ( m_keys, 0 , sizeof ( m_keys ) );
752767 memset ( m_keyStatus, 0 , sizeof ( m_keyStatus ) );
753768 m_modifiers = KEY_STATE_NONE;
You can’t perform that action at this time.
0 commit comments