Fix #162: Center ingame mouse cursor after login

This commit is contained in:
kaetemi 2014-07-09 12:31:22 +02:00
parent 246d931bee
commit e729a9d035
3 changed files with 9 additions and 5 deletions

View file

@ -53,12 +53,14 @@ namespace NLGUI
bool show() const {return _PointerVisible;}
void draw(){}
/// set button state
void setButtonState(NLMISC::TMouseButton state) { _Buttons = state; }
/// get buttons state
NLMISC::TMouseButton getButtonState() const { return _Buttons; }
static const sint32 InvalidCoord = 0x80000000;
protected:
// (x,y) is from the TopLeft corner of the window
sint32 _PointerX; // Current pointer position (raw, before snapping)

View file

@ -25,7 +25,7 @@ namespace NLGUI
CViewBase( param ),
_Buttons( NLMISC::noButton )
{
_PointerX = _PointerY = _PointerOldX = _PointerOldY = _PointerDownX = _PointerDownY = 0;
_PointerX = _PointerY = _PointerOldX = _PointerOldY = _PointerDownX = _PointerDownY = InvalidCoord;
_PointerDown = false;
_PointerVisible = true;
}

View file

@ -263,7 +263,6 @@ bool IsMouseFreeLook()
return MouseFreeLook;
}
// *********************************************************************************
// Use this method to toggle the mouse (freelook -> cursor)
void SetMouseCursor (bool updatePos)
@ -287,8 +286,11 @@ void SetMouseCursor (bool updatePos)
{
sint32 ix, iy;
cursor->getPointerPos (ix, iy);
x = (float)ix / (float)width;
y = (float)iy / (float)height;
if (ix != CViewPointer::InvalidCoord && iy != CViewPointer::InvalidCoord)
{
x = (float)ix / (float)width;
y = (float)iy / (float)height;
}
}
}