Fast toggle on alt+enter and key repeat are different things.
This here should fix the alt+enter issue.
This commit is contained in:
titiger 2016-11-09 23:25:59 +01:00
parent 6c2f722f30
commit cc64196c6b
2 changed files with 10 additions and 2 deletions

View File

@ -106,6 +106,10 @@ private:
static bool isFullScreen;
static SDL_keysym keystate;
static bool tryVSynch;
static int64 lastToggle ;
static void setLastToggle(int64 lastToggle) {Window::lastToggle = lastToggle;}
static int64 getLastToggle() {return Window::lastToggle;}
static void setLastMouseEvent(int64 lastMouseEvent) {Window::lastMouseEvent = lastMouseEvent;}
static int64 getLastMouseEvent() {return Window::lastMouseEvent;}

View File

@ -48,6 +48,7 @@ MouseState Window::mouseState;
bool Window::isKeyPressedDown = false;
bool Window::isFullScreen = false;
SDL_keysym Window::keystate;
int64 Window::lastToggle = -1000;
bool Window::isActive = false;
#ifdef WIN32
@ -315,7 +316,7 @@ bool Window::handleEvent() {
case SDL_KEYDOWN: {
//printf("In SDL_KEYDOWN\n");
if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] =================================== START OF SDL SDL_KEYDOWN ================================\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
if(event.key.repeat!=0) break;
keystate = event.key.keysym;
bool keyDownConsumed=false;
if(global_window) {
@ -365,7 +366,10 @@ bool Window::handleEvent() {
// handle ALT+Return
if( (keyName == "Return" || keyName == "Enter")
&& (event.key.keysym.mod & (KMOD_LALT | KMOD_RALT))) {
toggleFullscreen();
if (Chrono::getCurMillis() - getLastToggle() > 100) {
toggleFullscreen();
setLastToggle(Chrono::getCurMillis());
};
keyDownConsumed=true;
}
#ifdef WIN32