diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp index b96a6ff783d..0097330bb16 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp @@ -895,47 +895,30 @@ void MainMenuUpdate( WindowLayout *layout, void *userData ) WindowMsgHandledType MainMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 ) { - if(!notShown) return MSG_IGNORED; switch( msg ) { - // -------------------------------------------------------------------------------------------- case GWM_MOUSE_POS: { - ICoord2D mouse; - mouse.x = mData1 & 0xFFFF; - mouse.y = mData1 >> 16; + // TheSuperHackers @tweak 26/02/2026 Show mouse and menu immediately when shellmap is disabled. + Bool doShow = !TheGlobalData->m_shellMapOn; - // TheSuperHackers @tweak 20/08/2025 Show mouse and menu immediately when shellmap is disabled. - if (TheGlobalData->m_shellMapOn && mouse.x == 0 && mouse.y == 0) - break; - - static Int mousePosX = mouse.x; - static Int mousePosY = mouse.y; - if(abs(mouse.x - mousePosX) > 20 || abs(mouse.y - mousePosY) > 20) + if (!doShow) { + ICoord2D mouse; + mouse.x = mData1 & 0xFFFF; + mouse.y = mData1 >> 16; - DEBUG_LOG(("Mouse X:%d, Y:%d", mouse.x, mouse.y)); - if(notShown) - { - initialGadgetDelay = 1; - dropDownWindows[DROPDOWN_MAIN]->winHide(FALSE); - TheTransitionHandler->setGroup("MainMenuFade", TRUE); - TheTransitionHandler->setGroup("MainMenuDefaultMenu"); - TheMouse->setVisibility(TRUE); - notShown = FALSE; - return MSG_HANDLED; - } + static Int mousePosX = mouse.x; + static Int mousePosY = mouse.y; + + doShow = abs(mouse.x - mousePosX) > 20 || abs(mouse.y - mousePosY) > 20; } - } - break; - case GWM_CHAR: - { - if(notShown) + if (doShow) { initialGadgetDelay = 1; dropDownWindows[DROPDOWN_MAIN]->winHide(FALSE); @@ -946,14 +929,25 @@ WindowMsgHandledType MainMenuInput( GameWindow *window, UnsignedInt msg, return MSG_HANDLED; } + break; } + // -------------------------------------------------------------------------------------------- + case GWM_CHAR: + { + initialGadgetDelay = 1; + dropDownWindows[DROPDOWN_MAIN]->winHide(FALSE); + TheTransitionHandler->setGroup("MainMenuFade", TRUE); + TheTransitionHandler->setGroup("MainMenuDefaultMenu"); + TheMouse->setVisibility(TRUE); + notShown = FALSE; + return MSG_HANDLED; + } } - return MSG_IGNORED; - } + void PrintOffsetsFromControlBarParent(); //------------------------------------------------------------------------------------------------- /** Main menu window system callback */ diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp index 7dcb82fb78c..9e4cdbbe79f 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MainMenu.cpp @@ -932,47 +932,30 @@ void MainMenuUpdate( WindowLayout *layout, void *userData ) WindowMsgHandledType MainMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 ) { - if(!notShown) return MSG_IGNORED; switch( msg ) { - // -------------------------------------------------------------------------------------------- case GWM_MOUSE_POS: { - ICoord2D mouse; - mouse.x = mData1 & 0xFFFF; - mouse.y = mData1 >> 16; + // TheSuperHackers @tweak 26/02/2026 Show mouse and menu immediately when shellmap is disabled. + Bool doShow = !TheGlobalData->m_shellMapOn; - // TheSuperHackers @tweak 20/08/2025 Show mouse and menu immediately when shellmap is disabled. - if (TheGlobalData->m_shellMapOn && mouse.x == 0 && mouse.y == 0) - break; - - static Int mousePosX = mouse.x; - static Int mousePosY = mouse.y; - if(abs(mouse.x - mousePosX) > 20 || abs(mouse.y - mousePosY) > 20) + if (!doShow) { + ICoord2D mouse; + mouse.x = mData1 & 0xFFFF; + mouse.y = mData1 >> 16; - DEBUG_LOG(("Mouse X:%d, Y:%d", mouse.x, mouse.y)); - if(notShown) - { - initialGadgetDelay = 1; - dropDownWindows[DROPDOWN_MAIN]->winHide(FALSE); - TheTransitionHandler->setGroup("MainMenuFade", TRUE); - TheTransitionHandler->setGroup("MainMenuDefaultMenu"); - TheMouse->setVisibility(TRUE); - notShown = FALSE; - return MSG_HANDLED; - } + static Int mousePosX = mouse.x; + static Int mousePosY = mouse.y; + + doShow = abs(mouse.x - mousePosX) > 20 || abs(mouse.y - mousePosY) > 20; } - } - break; - case GWM_CHAR: - { - if(notShown) + if (doShow) { initialGadgetDelay = 1; dropDownWindows[DROPDOWN_MAIN]->winHide(FALSE); @@ -983,14 +966,25 @@ WindowMsgHandledType MainMenuInput( GameWindow *window, UnsignedInt msg, return MSG_HANDLED; } + break; } + // -------------------------------------------------------------------------------------------- + case GWM_CHAR: + { + initialGadgetDelay = 1; + dropDownWindows[DROPDOWN_MAIN]->winHide(FALSE); + TheTransitionHandler->setGroup("MainMenuFade", TRUE); + TheTransitionHandler->setGroup("MainMenuDefaultMenu"); + TheMouse->setVisibility(TRUE); + notShown = FALSE; + return MSG_HANDLED; + } } - return MSG_IGNORED; - } + void PrintOffsetsFromControlBarParent(); //------------------------------------------------------------------------------------------------- /** Main menu window system callback */