diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp index 18538334bbc..6e3b043d9f9 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp @@ -87,10 +87,11 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, { BitSet( instData->m_state, WIN_STATE_HILITED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), - GBM_MOUSE_ENTERING, - (WindowMsgData)window, - mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), + GBM_MOUSE_ENTERING, + (WindowMsgData)window, + mData1 ); //TheWindowManager->winSetFocus( window ); } @@ -110,10 +111,11 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, if(BitIsSet( instData->getStyle(), GWS_MOUSE_TRACK ) ) { BitClear( instData->m_state, WIN_STATE_HILITED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), - GBM_MOUSE_LEAVING, - (WindowMsgData)window, - mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), + GBM_MOUSE_LEAVING, + (WindowMsgData)window, + mData1 ); } // @@ -137,8 +139,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, case GWM_LEFT_DRAG: { - TheWindowManager->winSendSystemMsg( instData->getOwner(), GGM_LEFT_DRAG, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GGM_LEFT_DRAG, + (WindowMsgData)window, mData1 ); break; } @@ -171,8 +174,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, else BitSet( instData->m_state, WIN_STATE_SELECTED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, mData1 ); } else @@ -200,8 +204,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, BitClear( instData->m_state, WIN_STATE_SELECTED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, mData1 ); } else @@ -248,8 +253,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, else BitSet( instData->m_state, WIN_STATE_SELECTED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, + (WindowMsgData)window, mData1 ); } else @@ -284,8 +290,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, BitIsSet( window->winGetStatus(), WIN_STATUS_CHECK_LIKE ) == FALSE ) { - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, + (WindowMsgData)window, mData1 ); BitClear( instData->m_state, WIN_STATE_SELECTED ); @@ -330,8 +337,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, BitIsSet( window->winGetStatus(), WIN_STATUS_CHECK_LIKE ) == FALSE ) { - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, 0 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, 0 ); BitClear( instData->m_state, WIN_STATE_SELECTED ); @@ -354,8 +362,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, else BitSet( instData->m_state, WIN_STATE_SELECTED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, mData1 ); } else diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp index b62dac93666..6326cfcda00 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Gadget/GadgetPushButton.cpp @@ -99,10 +99,11 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, { BitSet( instData->m_state, WIN_STATE_HILITED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), - GBM_MOUSE_ENTERING, - (WindowMsgData)window, - mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), + GBM_MOUSE_ENTERING, + (WindowMsgData)window, + mData1 ); //TheWindowManager->winSetFocus( window ); } @@ -122,10 +123,11 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, if(BitIsSet( instData->getStyle(), GWS_MOUSE_TRACK ) ) { BitClear( instData->m_state, WIN_STATE_HILITED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), - GBM_MOUSE_LEAVING, - (WindowMsgData)window, - mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), + GBM_MOUSE_LEAVING, + (WindowMsgData)window, + mData1 ); } // @@ -149,8 +151,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, case GWM_LEFT_DRAG: { - TheWindowManager->winSendSystemMsg( instData->getOwner(), GGM_LEFT_DRAG, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GGM_LEFT_DRAG, + (WindowMsgData)window, mData1 ); break; } @@ -194,8 +197,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, } if (buttonTriggersOnMouseDown(window)) { - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, mData1 ); } break; @@ -217,8 +221,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, if (!buttonTriggersOnMouseDown(window)) { // If it didn't trigger on mouse down, trigger on the mouse up. jba [8/6/2003] - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, mData1 ); } } @@ -266,8 +271,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, else BitSet( instData->m_state, WIN_STATE_SELECTED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, + (WindowMsgData)window, mData1 ); } else @@ -302,8 +308,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, BitIsSet( window->winGetStatus(), WIN_STATUS_CHECK_LIKE ) == FALSE ) { - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED_RIGHT, + (WindowMsgData)window, mData1 ); BitClear( instData->m_state, WIN_STATE_SELECTED ); @@ -348,8 +355,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, BitIsSet( window->winGetStatus(), WIN_STATUS_CHECK_LIKE ) == FALSE ) { - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, 0 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, 0 ); BitClear( instData->m_state, WIN_STATE_SELECTED ); @@ -372,8 +380,9 @@ WindowMsgHandledType GadgetPushButtonInput( GameWindow *window, else BitSet( instData->m_state, WIN_STATE_SELECTED ); - TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, - (WindowMsgData)window, mData1 ); + if( instData->getOwner() != nullptr ) + TheWindowManager->winSendSystemMsg( instData->getOwner(), GBM_SELECTED, + (WindowMsgData)window, mData1 ); } else