From 2303da6d7ccbee0e5654c5ea76c97d8a5a69f1ea Mon Sep 17 00:00:00 2001 From: hendricks266 Date: Sat, 15 Aug 2015 21:28:31 +0000 Subject: [PATCH] Menus: Mostly revert r5326, and instead restrict the starting and stopping text input to touch devices where we need the on-screen keyboard to appear. This maintains the bugfix on targets with a physical keyboard. git-svn-id: https://svn.eduke32.com/eduke32@5331 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/eduke32/source/menus.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/polymer/eduke32/source/menus.c b/polymer/eduke32/source/menus.c index 548bf2154..bda3f2c82 100644 --- a/polymer/eduke32/source/menus.c +++ b/polymer/eduke32/source/menus.c @@ -59,21 +59,19 @@ extern int32_t voting; #define USERMAPENTRYLENGTH 25 -#if 0 -static inline void WithSDL2_StartTextInput() +FORCE_INLINE void WithSDL2_StartTextInput() { -#if defined SDL_MAJOR_VERSION && SDL_MAJOR_VERSION > 1 +#if defined EDUKE32_TOUCH_DEVICES && defined SDL_MAJOR_VERSION && SDL_MAJOR_VERSION > 1 SDL_StartTextInput(); #endif } -static inline void WithSDL2_StopTextInput() +FORCE_INLINE void WithSDL2_StopTextInput() { -#if defined SDL_MAJOR_VERSION && SDL_MAJOR_VERSION > 1 +#if defined EDUKE32_TOUCH_DEVICES && defined SDL_MAJOR_VERSION && SDL_MAJOR_VERSION > 1 SDL_StopTextInput(); #endif } -#endif #define mgametext(x,y,t) G_ScreenText(STARTALPHANUM, x, y, 65536, 0, 0, t, 0, 0, 2|8|16|ROTATESPRITE_FULL16, 0, 5<<16, 8<<16, -1<<16, 0, 0, 0, 0, xdim-1, ydim-1) #define mgametextcenter(x,y,t) G_ScreenText(STARTALPHANUM, (MENU_MARGIN_CENTER<<16) + (x), y, 65536, 0, 0, t, 0, 0, 2|8|16|ROTATESPRITE_FULL16, 0, 5<<16, 8<<16, -1<<16, 1<<16, TEXT_XCENTER, 0, 0, xdim-1, ydim-1) @@ -3418,6 +3416,7 @@ void M_ChangeMenu(MenuID_t cm) { typebuf[0] = 0; ((MenuTextForm_t*)m_currentMenu->object)->input = typebuf; + WithSDL2_StartTextInput(); } else if (m_currentMenu->type == FileSelect) M_MenuFileSelectInit((MenuFileSelect_t*)m_currentMenu->object); @@ -5180,6 +5179,7 @@ static void M_RunMenuInput_MenuEntryString_Activate(MenuEntry_t *entry) object->maxlength = TYPEBUFSIZE; M_MenuEntryStringActivate(/*entry*/); + WithSDL2_StartTextInput(); } static void M_RunMenuInput_MenuEntryString_Submit(MenuEntry_t *entry, MenuString_t *object) @@ -5188,6 +5188,7 @@ static void M_RunMenuInput_MenuEntryString_Submit(MenuEntry_t *entry, MenuString Bstrncpy(object->variable, object->editfield, object->maxlength); object->editfield = NULL; + WithSDL2_StopTextInput(); } static void M_RunMenuInput_MenuEntryString_Cancel(/*MenuEntry_t *entry, */MenuString_t *object) @@ -5195,6 +5196,7 @@ static void M_RunMenuInput_MenuEntryString_Cancel(/*MenuEntry_t *entry, */MenuSt M_MenuEntryStringCancel(/*entry*/); object->editfield = NULL; + WithSDL2_StopTextInput(); } static void M_RunMenuInput_FileSelect_MovementVerify(MenuFileSelect_t *object) @@ -5318,6 +5320,7 @@ static void M_RunMenuInput(Menu_t *cm) object->input = NULL; M_ChangeMenuAnimate(cm->parentID, cm->parentAnimation); + WithSDL2_StopTextInput(); } else if (hitstate == 1 || M_RunMenuInput_MouseAdvance()) { @@ -5326,6 +5329,7 @@ static void M_RunMenuInput(Menu_t *cm) M_MenuTextFormSubmit(object->input); object->input = NULL; + WithSDL2_StopTextInput(); } break; }