diff --git a/src/uxnemu.c b/src/uxnemu.c index 178be1d..7ac8f49 100644 --- a/src/uxnemu.c +++ b/src/uxnemu.c @@ -109,11 +109,17 @@ stdin_handler(void *p) static void set_window_size(SDL_Window *window, int w, int h) { +#ifdef __ANDROID__ + (void)window; + (void)w; + (void)h; +#else SDL_Point win, win_old; SDL_GetWindowPosition(window, &win.x, &win.y); SDL_GetWindowSize(window, &win_old.x, &win_old.y); SDL_SetWindowPosition(window, (win.x + win_old.x / 2) - w / 2, (win.y + win_old.y / 2) - h / 2); SDL_SetWindowSize(window, w, h); +#endif } static void @@ -138,7 +144,6 @@ set_size(Uint16 width, Uint16 height, int is_resize) gRect.w = uxn_screen.width; gRect.h = uxn_screen.height; if(gTexture != NULL) SDL_DestroyTexture(gTexture); - resized(); gTexture = SDL_CreateTexture(gRenderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, uxn_screen.width + PAD * 2, uxn_screen.height + PAD * 2); if(gTexture == NULL || SDL_SetTextureBlendMode(gTexture, SDL_BLENDMODE_NONE)) return error("gTexture", SDL_GetError()); @@ -146,6 +151,7 @@ set_size(Uint16 width, Uint16 height, int is_resize) return error("SDL_UpdateTexture", SDL_GetError()); if(is_resize) set_window_size(gWindow, (uxn_screen.width + PAD * 2) * zoom, (uxn_screen.height + PAD * 2) * zoom); + resized(); return 1; } @@ -193,7 +199,7 @@ init(void) if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK) < 0) return error("sdl", SDL_GetError()); #ifdef __ANDROID__ - winflags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_BORDERLESS | SDL_WINDOW_INPUT_GRABBED; + winflags = SDL_WINDOW_RESIZABLE; #else winflags = 0; #endif @@ -502,7 +508,7 @@ mouse_steal(SDL_Event *event) else SDL_StartTextInput(); } - return event->type != SDL_MOUSEBUTTONUP; + return 1; } #else (void)event; @@ -525,13 +531,12 @@ run(Uxn *u) if(event.type == SDL_QUIT) return error("Run", "Quit."); else if(event.type == SDL_WINDOWEVENT) { - if(event.window.event == SDL_WINDOWEVENT_RESIZED || event.window.event == SDL_WINDOWEVENT_EXPOSED) { + int e = event.window.event; + if(e == SDL_WINDOWEVENT_RESTORED || e == SDL_WINDOWEVENT_RESIZED || e == SDL_WINDOWEVENT_EXPOSED) { #ifdef __ANDROID__ /* rotation does something weird, have to redraw twice */ - if(event.window.event == SDL_WINDOWEVENT_RESIZED) { - resized(); - redraw(u); - } + resized(); + redraw(u); #endif force_redraw = 1; }