- fixed the cursor bug mentioned by claymore

This commit is contained in:
Mark Vejvoda 2010-10-22 16:08:13 +00:00
parent c088889e7c
commit 343fdb70b2
3 changed files with 17 additions and 19 deletions

View File

@ -372,6 +372,7 @@ void Program::setState(ProgramState *programState, bool cleanupOldState)
bool msgBoxEnabled = msgBox.getEnabled();
bool showingOSCursor = isCursorShowing();
if(dynamic_cast<Game *>(programState) != NULL) {
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
@ -426,14 +427,16 @@ void Program::setState(ProgramState *programState, bool cleanupOldState)
updateCameraTimer.reset();
fpsTimer.reset();
Config &config = Config::getInstance();
if(config.getBool("No2DMouseRendering","false") == false) {
showCursor(false);
}
sleep(0);
if(showingOSCursor == false) {
Config &config = Config::getInstance();
if(config.getBool("No2DMouseRendering","false") == false) {
showCursor(false);
}
sleep(0);
if(dynamic_cast<Intro *>(programState) != NULL && msgBoxEnabled == true) {
showCursor(true);
if(dynamic_cast<Intro *>(programState) != NULL && msgBoxEnabled == true) {
showCursor(true);
}
}
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);

View File

@ -131,6 +131,7 @@ int getScreenH();
void sleep(int millis);
bool isCursorShowing();
void showCursor(bool b);
bool isKeyDown(int virtualKey);
string getCommandLine();

View File

@ -848,23 +848,17 @@ void sleep(int millis) {
SDL_Delay(millis);
}
void showCursor(bool b) {
//int x,y;
//if(b) {
//SDL_GetMouseState( &x, &y );
//}
bool isCursorShowing() {
int state = SDL_ShowCursor(SDL_QUERY);
if( (state == SDL_DISABLE && b == false) ||
(state == SDL_ENABLE && b == true)) {
return (state == SDL_ENABLE);
}
void showCursor(bool b) {
if(isCursorShowing() == b) {
return;
}
SDL_ShowCursor(b == true ? SDL_ENABLE : SDL_DISABLE);
//SDL_WM_GrabInput(SDL_GRAB_OFF);
//if(b == true) {
//SDL_WM_GrabInput(SDL_GRAB_OFF);
//SDL_WarpMouse(x,y);
//}
}
bool isKeyDown(int virtualKey) {