@@ -796,74 +796,80 @@ bool CMainMenu::OnMenuClick(CGUIMouseEventArgs Args)
796796{
797797 CGUIElement* pElement = Args.pWindow ;
798798
799- // Handle all our clicks to the menu from here
800- if (m_pHoveredItem)
801- {
802- // For detecting startup problems
803- WatchDogUserDidInteractWithMenu ();
799+ // Only handle all our clicks to the menu from here
800+ if (!m_pHoveredItem)
801+ return true ;
804802
805- // Possible disconnect question for user
806- if (g_pCore->IsConnected ())
807- {
808- switch (m_pHoveredItem->menuType )
809- {
810- case MENU_ITEM_HOST_GAME:
811- case MENU_ITEM_MAP_EDITOR:
812- AskUserIfHeWantsToDisconnect (m_pHoveredItem->menuType );
813- return true ;
814- default :
815- break ;
816- }
817- }
803+ if (Args.button != LeftButton && m_pHoveredItem->menuType != MENU_ITEM_QUICK_CONNECT)
804+ return true ;
805+
806+ // For detecting startup problems
807+ WatchDogUserDidInteractWithMenu ();
818808
809+ // Possible disconnect question for user
810+ if (g_pCore->IsConnected ())
811+ {
819812 switch (m_pHoveredItem->menuType )
820813 {
821- case MENU_ITEM_DISCONNECT:
822- OnDisconnectButtonClick (pElement);
823- break ;
824- case MENU_ITEM_QUICK_CONNECT:
825- OnQuickConnectButtonClick (pElement);
826- break ;
827- case MENU_ITEM_BROWSE_SERVERS:
828- OnBrowseServersButtonClick (pElement);
829- break ;
830814 case MENU_ITEM_HOST_GAME:
831- OnHostGameButtonClick ();
832- break ;
833815 case MENU_ITEM_MAP_EDITOR:
834- OnEditorButtonClick ();
835- break ;
836- case MENU_ITEM_SETTINGS:
837- OnSettingsButtonClick (pElement);
838- break ;
839- case MENU_ITEM_ABOUT:
840- OnAboutButtonClick (pElement);
841- break ;
842- case MENU_ITEM_QUIT:
843- OnQuitButtonClick (pElement);
844- break ;
816+ AskUserIfHeWantsToDisconnect (m_pHoveredItem->menuType );
817+ return true ;
845818 default :
846819 break ;
847820 }
848821 }
822+
823+ switch (m_pHoveredItem->menuType )
824+ {
825+ case MENU_ITEM_DISCONNECT:
826+ OnDisconnectButtonClick (pElement);
827+ break ;
828+ case MENU_ITEM_QUICK_CONNECT:
829+ OnQuickConnectButtonClick (pElement, Args.button == LeftButton);
830+ break ;
831+ case MENU_ITEM_BROWSE_SERVERS:
832+ OnBrowseServersButtonClick (pElement);
833+ break ;
834+ case MENU_ITEM_HOST_GAME:
835+ OnHostGameButtonClick ();
836+ break ;
837+ case MENU_ITEM_MAP_EDITOR:
838+ OnEditorButtonClick ();
839+ break ;
840+ case MENU_ITEM_SETTINGS:
841+ OnSettingsButtonClick (pElement);
842+ break ;
843+ case MENU_ITEM_ABOUT:
844+ OnAboutButtonClick (pElement);
845+ break ;
846+ case MENU_ITEM_QUIT:
847+ OnQuitButtonClick (pElement);
848+ break ;
849+ default :
850+ break ;
851+ }
852+
849853 return true ;
850854}
851855
852- bool CMainMenu::OnQuickConnectButtonClick (CGUIElement* pElement)
856+ bool CMainMenu::OnQuickConnectButtonClick (CGUIElement* pElement, bool left )
853857{
854858 // Return if we haven't faded in yet
855859 if (m_ucFade != FADE_VISIBLE)
856860 return false ;
857861
862+ // If we're right clicking, execute special command
863+ if (!left)
864+ {
865+ std::string command;
866+ CVARS_GET (" _beta_qc_rightclick_command" , command);
867+ g_pCore->GetCommands ()->Execute (command.data ());
868+ return true ;
869+ }
870+
858871 m_ServerBrowser.SetVisible (true );
859872 m_ServerBrowser.OnQuickConnectButtonClick ();
860- /*
861- // if ( !m_bIsInSubWindow )
862- {
863- m_QuickConnect.SetVisible ( true );
864- // m_bIsInSubWindow = true;
865- }
866- */
867873 return true ;
868874}
869875
0 commit comments