From ef363c57acec285f8e58a5e2a0909133fc85e4d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Tue, 28 Jul 2020 15:36:54 +0200 Subject: [PATCH] [ion] Reset the highlighted key once it has been drawn --- ion/src/simulator/shared/layout.cpp | 4 ++++ ion/src/simulator/shared/main_sdl.cpp | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ion/src/simulator/shared/layout.cpp b/ion/src/simulator/shared/layout.cpp index 8d66a1ea4..4de6e6e43 100644 --- a/ion/src/simulator/shared/layout.cpp +++ b/ion/src/simulator/shared/layout.cpp @@ -282,6 +282,10 @@ void drawHighlightedKey(SDL_Renderer * renderer) { getKeyRectangle(sHighlightedKeyIndex, &rect); SDL_RenderCopy(renderer, framebufferTexture, nullptr, &rect); SDL_DestroyTexture(framebufferTexture); + + // Reset highlighted key + sHighlightedKeyIndex = -1; + Main::setNeedsRefresh(); } static SDL_Texture * sBackgroundTexture = nullptr; diff --git a/ion/src/simulator/shared/main_sdl.cpp b/ion/src/simulator/shared/main_sdl.cpp index 0be773c18..c4085c17c 100644 --- a/ion/src/simulator/shared/main_sdl.cpp +++ b/ion/src/simulator/shared/main_sdl.cpp @@ -129,6 +129,8 @@ void refresh() { if (!sNeedsRefresh) { return; } + sNeedsRefresh = false; + #if EPSILON_SDL_SCREEN_ONLY Display::draw(sRenderer, &sScreenRect); #else @@ -137,11 +139,11 @@ void refresh() { SDL_SetRenderDrawColor(sRenderer, 194, 194, 194, 255); SDL_RenderClear(sRenderer); + // Can change sNeedsRefresh state if a key is highlighted and needs to be reset Layout::draw(sRenderer); Display::draw(sRenderer, &screenRect); #endif SDL_RenderPresent(sRenderer); - sNeedsRefresh = false; IonSimulatorCallbackDidRefresh(); }