From ee83411bcd5e12cbd6708e3bd610c437169dd7bd Mon Sep 17 00:00:00 2001 From: kichikuou Date: Sun, 2 Apr 2017 09:40:50 +0900 Subject: [PATCH] Apply selection when key is released --- src/selection.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/selection.c b/src/selection.c index 8f757d6..3f31587 100644 --- a/src/selection.c +++ b/src/selection.c @@ -403,7 +403,7 @@ static void drawLineFrame(int x, int y, int width, int height) { void sel_select() { int curElement = -1; int preElement = -1; - int key, i; + int key, prevkey = 0, i; saveimg2 = NULL; keymode = 0; @@ -426,8 +426,9 @@ void sel_select() { sys_key_releasewait(SYS35KEY_RET, FALSE); while (1) { key = sys_keywait(25, TRUE); - if (key == SYS35KEY_SPC) break; - if (key == SYS35KEY_RET && curElement != -1) break; + if (!key && prevkey == SYS35KEY_SPC) break; + if (!key && prevkey == SYS35KEY_RET && curElement != -1) break; + prevkey = key; if (key & 3) { curElement = -1; if ((key & 1)) { @@ -467,7 +468,6 @@ void sel_select() { } } } - sys_key_releasewait(SYS35KEY_RET, FALSE); if (saveimg2 != NULL) { ags_delRegion(saveimg2); @@ -486,7 +486,7 @@ void sel_select() { msg_nextPage(TRUE); } - if (key == SYS35KEY_RET) { + if (prevkey == SYS35KEY_RET) { sl_jmpNear(elmv[curElement]); if (cb_select_page != 0) { sl_callFar2(cb_select_page -1, cb_select_address);