forked from mirror/openmw-tes3mp
Hide the mouse cursor until it's used
This commit is contained in:
parent
09e93319f5
commit
fce9a14986
4 changed files with 19 additions and 1 deletions
|
@ -180,6 +180,7 @@ namespace MWBase
|
||||||
virtual void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y) = 0;
|
virtual void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y) = 0;
|
||||||
|
|
||||||
virtual void setCursorVisible(bool visible) = 0;
|
virtual void setCursorVisible(bool visible) = 0;
|
||||||
|
virtual void setCursorActive(bool active) = 0;
|
||||||
virtual void getMousePosition(int &x, int &y) = 0;
|
virtual void getMousePosition(int &x, int &y) = 0;
|
||||||
virtual void getMousePosition(float &x, float &y) = 0;
|
virtual void getMousePosition(float &x, float &y) = 0;
|
||||||
virtual void setDragDrop(bool dragDrop) = 0;
|
virtual void setDragDrop(bool dragDrop) = 0;
|
||||||
|
|
|
@ -176,6 +176,7 @@ namespace MWGui
|
||||||
, mWerewolfOverlayEnabled(Settings::Manager::getBool ("werewolf overlay", "GUI"))
|
, mWerewolfOverlayEnabled(Settings::Manager::getBool ("werewolf overlay", "GUI"))
|
||||||
, mHudEnabled(true)
|
, mHudEnabled(true)
|
||||||
, mCursorVisible(true)
|
, mCursorVisible(true)
|
||||||
|
, mCursorActive(false)
|
||||||
, mPlayerName()
|
, mPlayerName()
|
||||||
, mPlayerRaceId()
|
, mPlayerRaceId()
|
||||||
, mPlayerAttributes()
|
, mPlayerAttributes()
|
||||||
|
@ -1009,7 +1010,16 @@ namespace MWGui
|
||||||
|
|
||||||
void WindowManager::setCursorVisible(bool visible)
|
void WindowManager::setCursorVisible(bool visible)
|
||||||
{
|
{
|
||||||
|
if (visible == mCursorVisible)
|
||||||
|
return;
|
||||||
mCursorVisible = visible;
|
mCursorVisible = visible;
|
||||||
|
if (!visible)
|
||||||
|
mCursorActive = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WindowManager::setCursorActive(bool active)
|
||||||
|
{
|
||||||
|
mCursorActive = active;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WindowManager::onRetrieveTag(const MyGUI::UString& _tag, MyGUI::UString& _result)
|
void WindowManager::onRetrieveTag(const MyGUI::UString& _tag, MyGUI::UString& _result)
|
||||||
|
@ -1518,7 +1528,7 @@ namespace MWGui
|
||||||
|
|
||||||
bool WindowManager::getCursorVisible()
|
bool WindowManager::getCursorVisible()
|
||||||
{
|
{
|
||||||
return mCursorVisible;
|
return mCursorVisible && mCursorActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WindowManager::trackWindow(Layout *layout, const std::string &name)
|
void WindowManager::trackWindow(Layout *layout, const std::string &name)
|
||||||
|
|
|
@ -320,6 +320,9 @@ namespace MWGui
|
||||||
|
|
||||||
virtual bool getCursorVisible();
|
virtual bool getCursorVisible();
|
||||||
|
|
||||||
|
/// Call when mouse cursor or buttons are used.
|
||||||
|
virtual void setCursorActive(bool active);
|
||||||
|
|
||||||
/// Clear all savegame-specific data
|
/// Clear all savegame-specific data
|
||||||
virtual void clear();
|
virtual void clear();
|
||||||
|
|
||||||
|
@ -447,6 +450,7 @@ namespace MWGui
|
||||||
bool mWerewolfOverlayEnabled;
|
bool mWerewolfOverlayEnabled;
|
||||||
bool mHudEnabled;
|
bool mHudEnabled;
|
||||||
bool mCursorVisible;
|
bool mCursorVisible;
|
||||||
|
bool mCursorActive;
|
||||||
|
|
||||||
void setCursorVisible(bool visible);
|
void setCursorVisible(bool visible);
|
||||||
|
|
||||||
|
|
|
@ -718,6 +718,7 @@ namespace MWInput
|
||||||
MWBase::Environment::get().getWindowManager()->playSound("Menu Click");
|
MWBase::Environment::get().getWindowManager()->playSound("Menu Click");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
MWBase::Environment::get().getWindowManager()->setCursorActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
setPlayerControlsEnabled(!guiMode);
|
setPlayerControlsEnabled(!guiMode);
|
||||||
|
@ -764,6 +765,8 @@ namespace MWInput
|
||||||
MyGUI::InputManager::getInstance().injectMouseMove( int(mGuiCursorX), int(mGuiCursorY), mMouseWheel);
|
MyGUI::InputManager::getInstance().injectMouseMove( int(mGuiCursorX), int(mGuiCursorY), mMouseWheel);
|
||||||
// FIXME: inject twice to force updating focused widget states (tooltips) resulting from changing the viewport by scroll wheel
|
// FIXME: inject twice to force updating focused widget states (tooltips) resulting from changing the viewport by scroll wheel
|
||||||
MyGUI::InputManager::getInstance().injectMouseMove( int(mGuiCursorX), int(mGuiCursorY), mMouseWheel);
|
MyGUI::InputManager::getInstance().injectMouseMove( int(mGuiCursorX), int(mGuiCursorY), mMouseWheel);
|
||||||
|
|
||||||
|
MWBase::Environment::get().getWindowManager()->setCursorActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mMouseLookEnabled && !mControlsDisabled)
|
if (mMouseLookEnabled && !mControlsDisabled)
|
||||||
|
|
Loading…
Reference in a new issue