X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Facesskernel_src%2Fui_sdl.c;h=bc6efc944a13b7e4318496c618fc57866e23f0b2;hb=5a66c3a4a2019a7ddea8931c8476bb64f4d29079;hp=7e97cbe74590073b0fc671eb0aec42ba364bbc53;hpb=8a854ac508a279317fc5f4d898134d83faad8b3f;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/ui_sdl.c b/AcessNative/acesskernel_src/ui_sdl.c index 7e97cbe7..bc6efc94 100644 --- a/AcessNative/acesskernel_src/ui_sdl.c +++ b/AcessNative/acesskernel_src/ui_sdl.c @@ -130,56 +130,53 @@ void UI_MainLoop(void) SDL_Event event; Uint32 acess_sym; - for( ;; ) + while( SDL_WaitEvent(&event) ) { - while(SDL_PollEvent(&event)) + switch(event.type) { - switch(event.type) - { - case SDL_QUIT: - AcessNative_Exit(); - return ; - - case SDL_KEYDOWN: - acess_sym = UI_GetAcessKeyFromSDL(event.key.keysym.sym); - // Enter key on acess returns \n, but SDL returns \r - if(event.key.keysym.sym == SDLK_RETURN) - event.key.keysym.unicode = '\n'; - - if( gUI_KeyboardCallback ) { - gUI_KeyboardCallback(KEY_ACTION_RAWSYM|acess_sym); - gUI_KeyboardCallback(KEY_ACTION_PRESS|event.key.keysym.unicode); - } - break; + case SDL_QUIT: + AcessNative_Exit(); + return ; - case SDL_KEYUP: - acess_sym = UI_GetAcessKeyFromSDL(event.key.keysym.sym); - - if( gUI_KeyboardCallback ) { - gUI_KeyboardCallback(KEY_ACTION_RAWSYM|acess_sym); - gUI_KeyboardCallback(KEY_ACTION_RELEASE|0); - } - break; - - case SDL_USEREVENT: - SDL_UpdateRect(gScreen, 0, 0, giUI_Width, giUI_Height); - SDL_Flip(gScreen); - break; + case SDL_KEYDOWN: + acess_sym = UI_GetAcessKeyFromSDL(event.key.keysym.sym); + // Enter key on acess returns \n, but SDL returns \r + if(event.key.keysym.sym == SDLK_RETURN) + event.key.keysym.unicode = '\n'; + + if( gUI_KeyboardCallback ) { + gUI_KeyboardCallback(KEY_ACTION_RAWSYM|acess_sym); + gUI_KeyboardCallback(KEY_ACTION_PRESS|event.key.keysym.unicode); + } + break; + + case SDL_KEYUP: + acess_sym = UI_GetAcessKeyFromSDL(event.key.keysym.sym); - case SDL_MOUSEMOTION: { - int abs[] = {event.motion.x, event.motion.y}; - int delta[] = {event.motion.xrel, event.motion.yrel}; - Mouse_HandleEvent(UI_GetButtonBits(SDL_GetMouseState(NULL, NULL)), delta, abs); - break; } - case SDL_MOUSEBUTTONUP: - case SDL_MOUSEBUTTONDOWN: { - int abs[] = {event.button.x, event.button.y}; - Mouse_HandleEvent(UI_GetButtonBits(SDL_GetMouseState(NULL, NULL)), NULL, abs); - break; } - - default: - break; + if( gUI_KeyboardCallback ) { + gUI_KeyboardCallback(KEY_ACTION_RAWSYM|acess_sym); + gUI_KeyboardCallback(KEY_ACTION_RELEASE|0); } + break; + + case SDL_USEREVENT: + SDL_UpdateRect(gScreen, 0, 0, giUI_Width, giUI_Height); + SDL_Flip(gScreen); + break; + + case SDL_MOUSEMOTION: { + int abs[] = {event.motion.x, event.motion.y}; + int delta[] = {event.motion.xrel, event.motion.yrel}; + Mouse_HandleEvent(UI_GetButtonBits(SDL_GetMouseState(NULL, NULL)), delta, abs); + break; } + case SDL_MOUSEBUTTONUP: + case SDL_MOUSEBUTTONDOWN: { + int abs[] = {event.button.x, event.button.y}; + Mouse_HandleEvent(UI_GetButtonBits(SDL_GetMouseState(NULL, NULL)), NULL, abs); + break; } + + default: + break; } } }