projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improved shifting up video display when activating screen keyboard (Android)
[rocksndiamonds.git]
/
src
/
libgame
/
system.c
diff --git
a/src/libgame/system.c
b/src/libgame/system.c
index df401b5a57a6ebea20d8f539f6eedff4be5076b9..7d85f6171925be6137208f50461354d0dd751626 100644
(file)
--- a/
src/libgame/system.c
+++ b/
src/libgame/system.c
@@
-387,6
+387,10
@@
void InitVideoBuffer(int width, int height, int depth, boolean fullscreen)
video.frame_delay_value = GAME_FRAME_DELAY;
video.shifted_up = FALSE;
video.frame_delay_value = GAME_FRAME_DELAY;
video.shifted_up = FALSE;
+ video.shifted_up_pos = 0;
+ video.shifted_up_pos_last = 0;
+ video.shifted_up_delay = 0;
+ video.shifted_up_delay_value = ONE_SECOND_DELAY / 4;
SDLInitVideoBuffer(fullscreen);
SDLInitVideoBuffer(fullscreen);
@@
-1513,14
+1517,18
@@
KeyMod GetKeyModStateFromEvents()
return HandleKeyModState(KSYM_UNDEFINED, 0);
}
return HandleKeyModState(KSYM_UNDEFINED, 0);
}
-void StartTextInput(int x, int y)
+void StartTextInput(int x, int y
, int width, int height
)
{
#if defined(TARGET_SDL2)
SDL_StartTextInput();
#if defined(HAS_SCREEN_KEYBOARD)
{
#if defined(TARGET_SDL2)
SDL_StartTextInput();
#if defined(HAS_SCREEN_KEYBOARD)
- if (y > video.height / 2)
+ if (y + height > SCREEN_KEYBOARD_POS(video.height))
+ {
+ video.shifted_up_pos = y + height - SCREEN_KEYBOARD_POS(video.height);
+ video.shifted_up_delay = SDL_GetTicks();
video.shifted_up = TRUE;
video.shifted_up = TRUE;
+ }
#endif
#endif
}
#endif
#endif
}
@@
-1531,7
+1539,12
@@
void StopTextInput()
SDL_StopTextInput();
#if defined(HAS_SCREEN_KEYBOARD)
SDL_StopTextInput();
#if defined(HAS_SCREEN_KEYBOARD)
- video.shifted_up = FALSE;
+ if (video.shifted_up)
+ {
+ video.shifted_up_pos = 0;
+ video.shifted_up_delay = SDL_GetTicks();
+ video.shifted_up = FALSE;
+ }
#endif
#endif
}
#endif
#endif
}