From 7392454751d8a9406480407cd8aedf69d24ce3bb Mon Sep 17 00:00:00 2001 From: a bellenir Date: Sun, 3 Aug 2014 06:27:41 +0000 Subject: [PATCH] fix aardvark mode --- source/input.c | 9 +++++++-- source/screen.c | 8 ++++---- source/state.c | 3 +-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/source/input.c b/source/input.c index aab3cd0..610be87 100644 --- a/source/input.c +++ b/source/input.c @@ -17,8 +17,13 @@ typedef struct { } binding_t; static void handle_aardvark(void) { - state_set_aardvark_mode(!state_get_aardvark_mode()); - state_set_refresh_state(REFRESH_AARDVARK); + if(state_get_aardvark_mode()){ + state_set_aardvark_mode(false); + state_set_refresh_state(REFRESH_ALL_WINS); + }else{ + state_set_aardvark_mode(true); + state_set_refresh_state(REFRESH_AARDVARK); + } } static void handle_quit(void) { diff --git a/source/screen.c b/source/screen.c index ec71e69..fc5915c 100644 --- a/source/screen.c +++ b/source/screen.c @@ -52,14 +52,14 @@ void screen_deinit(void) { void screen_update(void) { /* Clear screen and update LINES and COLS */ - if(state_get_refresh_state() == REFRESH_AARDVARK && state_get_aardvark_mode()){ - aardvark_draw(); - } else if(state_get_refresh_state() == REFRESH_CURR_WIN){ + if(state_get_refresh_state() == REFRESH_CURR_WIN){ screen_refresh_curr_frame(); - } else { + } else if (state_get_refresh_state() == REFRESH_ALL_WINS) { endwin(); screen_place_windows(); } + if(state_get_aardvark_mode() && state_get_refresh_state() != REFRESH_COMPLETE) + aardvark_draw(); /* Refresh and mark complete */ state_set_refresh_state(REFRESH_COMPLETE); } diff --git a/source/state.c b/source/state.c index 387ac44..efee0f9 100644 --- a/source/state.c +++ b/source/state.c @@ -64,8 +64,7 @@ RefreshState_T state_get_refresh_state(void) void state_set_refresh_state(RefreshState_T state) { - if ((state == REFRESH_COMPLETE) || (RefreshState < state)) - { + if ((state == REFRESH_COMPLETE) || (RefreshState < state)) { RefreshState = state; } } -- 2.54.0