Ticket #539: patch_v2.patch

File patch_v2.patch, 3.0 KB (added by Nicolas, 10 years ago)
  • binaries/data/mods/public/gui/session/input.js

     
    5656    var cursorSet = false;
    5757    var tooltipSet = false;
    5858    var informationTooltip = getGUIObjectByName("informationTooltip");
     59
    5960    if (!mouseIsOverObject)
    6061    {
    6162        var action = determineAction(mouseX, mouseY);
     
    7778            }
    7879        }
    7980    }
    80 
    81     if (!cursorSet)
     81    var lastGuiPageIsMessageBox = Engine.LastGuiPageIsMessageBox();
     82    if (!cursorSet || lastGuiPageIsMessageBox)
     83    {
    8284        Engine.SetCursor("arrow-default");
     85    }
    8386    if (!tooltipSet)
    8487        informationTooltip.hidden = true;
    8588   
  • source/gui/GUIManager.cpp

     
    6666    return !m_PageStack.empty();
    6767}
    6868
     69bool CGUIManager::LastPageIsMessageBox()
     70{
     71    if (m_PageStack.back().name == L"page_msgbox.xml")
     72    {
     73        return true;
     74    }
     75    return false;
     76}
     77
    6978void CGUIManager::SwitchPage(const CStrW& pageName, CScriptVal initData)
    7079{
    7180    m_PageStack.clear();
     
    7584void CGUIManager::PushPage(const CStrW& pageName, CScriptVal initData)
    7685{
    7786    m_PageStack.push_back(SGUIPage());
     87
    7888    m_PageStack.back().name = pageName;
    7989    m_PageStack.back().initData = CScriptValRooted(m_ScriptInterface.GetContext(), initData);
    8090    LoadPage(m_PageStack.back());
  • source/gui/GUIManager.h

     
    5757    bool HasPages();
    5858
    5959    /**
     60     * Determine if the last page is a messagebox
     61     */
     62    bool LastPageIsMessageBox();
     63
     64    /**
    6065     * Load a new GUI page and make it active. All current pages will be destroyed.
    6166     */
    6267    void SwitchPage(const CStrW& name, CScriptVal initData);
  • source/gui/scripting/ScriptFunctions.cpp

     
    9393    g_GUI->PopPage();
    9494}
    9595
     96bool LastGuiPageIsMessageBox(void* UNUSED(cbdata))
     97{
     98    return g_GUI->LastPageIsMessageBox();
     99}
     100
    96101CScriptVal GuiInterfaceCall(void* cbdata, std::wstring name, CScriptVal data)
    97102{
    98103    CGUIManager* guiManager = static_cast<CGUIManager*> (cbdata);
     
    641646    scriptInterface.RegisterFunction<void, std::wstring, CScriptVal, &PushGuiPage>("PushGuiPage");
    642647    scriptInterface.RegisterFunction<void, std::wstring, CScriptVal, &SwitchGuiPage>("SwitchGuiPage");
    643648    scriptInterface.RegisterFunction<void, &PopGuiPage>("PopGuiPage");
     649    scriptInterface.RegisterFunction<bool, &LastGuiPageIsMessageBox>("LastGuiPageIsMessageBox");
    644650
    645651    // Simulation<->GUI interface functions:
    646652    scriptInterface.RegisterFunction<CScriptVal, std::wstring, CScriptVal, &GuiInterfaceCall>("GuiInterfaceCall");