mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 09:39:43 +01:00
Add buffer for IME editing events
When inputting uncommitted text from an IME, this is now stored in a std::string imebuffer, just like keybuffer. It also enables extended editing events, so text longer than what fits in the standard editing event is also supported. This commit does not yet display the text onscreen.
This commit is contained in:
parent
345eca5e10
commit
a9ca63b367
3 changed files with 14 additions and 2 deletions
|
@ -51,6 +51,7 @@ KeyPoll::KeyPoll(void)
|
||||||
sensitivity = 2;
|
sensitivity = 2;
|
||||||
|
|
||||||
keybuffer = "";
|
keybuffer = "";
|
||||||
|
imebuffer = "";
|
||||||
leftbutton=0; rightbutton=0; middlebutton=0;
|
leftbutton=0; rightbutton=0; middlebutton=0;
|
||||||
mousex = 0;
|
mousex = 0;
|
||||||
mousey = 0;
|
mousey = 0;
|
||||||
|
@ -65,12 +66,14 @@ KeyPoll::KeyPoll(void)
|
||||||
void KeyPoll::enabletextentry(void)
|
void KeyPoll::enabletextentry(void)
|
||||||
{
|
{
|
||||||
keybuffer = "";
|
keybuffer = "";
|
||||||
|
imebuffer = "";
|
||||||
SDL_StartTextInput();
|
SDL_StartTextInput();
|
||||||
}
|
}
|
||||||
|
|
||||||
void KeyPoll::disabletextentry(void)
|
void KeyPoll::disabletextentry(void)
|
||||||
{
|
{
|
||||||
SDL_StopTextInput();
|
SDL_StopTextInput();
|
||||||
|
imebuffer = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KeyPoll::textentry(void)
|
bool KeyPoll::textentry(void)
|
||||||
|
@ -321,6 +324,13 @@ void KeyPoll::Poll(void)
|
||||||
keybuffer += evt.text.text;
|
keybuffer += evt.text.text;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SDL_TEXTEDITING:
|
||||||
|
imebuffer = evt.edit.text;
|
||||||
|
break;
|
||||||
|
case SDL_TEXTEDITING_EXT:
|
||||||
|
imebuffer = evt.editExt.text;
|
||||||
|
SDL_free(evt.editExt.text);
|
||||||
|
break;
|
||||||
|
|
||||||
/* Mouse Input */
|
/* Mouse Input */
|
||||||
case SDL_MOUSEMOTION:
|
case SDL_MOUSEMOTION:
|
||||||
|
|
|
@ -69,6 +69,7 @@ public:
|
||||||
bool textentry(void);
|
bool textentry(void);
|
||||||
bool pressedbackspace;
|
bool pressedbackspace;
|
||||||
std::string keybuffer;
|
std::string keybuffer;
|
||||||
|
std::string imebuffer;
|
||||||
|
|
||||||
bool linealreadyemptykludge;
|
bool linealreadyemptykludge;
|
||||||
|
|
||||||
|
|
|
@ -599,6 +599,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_SetHintWithPriority(SDL_HINT_IME_SHOW_UI, "1", SDL_HINT_OVERRIDE);
|
SDL_SetHintWithPriority(SDL_HINT_IME_SHOW_UI, "1", SDL_HINT_OVERRIDE);
|
||||||
|
SDL_SetHintWithPriority(SDL_HINT_IME_SUPPORT_EXTENDED_TEXT, "1", SDL_HINT_OVERRIDE);
|
||||||
|
|
||||||
/* We already do the button swapping in ButtonGlyphs, disable SDL's swapping */
|
/* We already do the button swapping in ButtonGlyphs, disable SDL's swapping */
|
||||||
SDL_SetHintWithPriority(SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS, "0", SDL_HINT_OVERRIDE);
|
SDL_SetHintWithPriority(SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS, "0", SDL_HINT_OVERRIDE);
|
||||||
|
|
Loading…
Reference in a new issue