mirror of
https://github.com/shadps4-emu/ext-SDL.git
synced 2025-01-09 12:20:19 +00:00
Fix text_input_v3 preedit string
For every batch of text_input_v3 updates, if there is no preedit in this batch, preedit should be cleared.
This commit is contained in:
parent
03c4405b3b
commit
a90a2e7582
@ -1505,7 +1505,9 @@ text_input_preedit_string(void *data,
|
|||||||
int32_t cursor_begin,
|
int32_t cursor_begin,
|
||||||
int32_t cursor_end)
|
int32_t cursor_end)
|
||||||
{
|
{
|
||||||
|
SDL_WaylandTextInput *text_input = data;
|
||||||
char buf[SDL_TEXTEDITINGEVENT_TEXT_SIZE];
|
char buf[SDL_TEXTEDITINGEVENT_TEXT_SIZE];
|
||||||
|
text_input->has_preedit = SDL_TRUE;
|
||||||
if (text) {
|
if (text) {
|
||||||
size_t text_bytes = SDL_strlen(text), i = 0;
|
size_t text_bytes = SDL_strlen(text), i = 0;
|
||||||
size_t cursor = 0;
|
size_t cursor = 0;
|
||||||
@ -1557,7 +1559,11 @@ text_input_done(void *data,
|
|||||||
struct zwp_text_input_v3 *zwp_text_input_v3,
|
struct zwp_text_input_v3 *zwp_text_input_v3,
|
||||||
uint32_t serial)
|
uint32_t serial)
|
||||||
{
|
{
|
||||||
/* No-op */
|
SDL_WaylandTextInput *text_input = data;
|
||||||
|
if (!text_input->has_preedit) {
|
||||||
|
SDL_SendEditingText("", 0, 0);
|
||||||
|
}
|
||||||
|
text_input->has_preedit = SDL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct zwp_text_input_v3_listener text_input_listener = {
|
static const struct zwp_text_input_v3_listener text_input_listener = {
|
||||||
|
@ -27,6 +27,7 @@ typedef struct SDL_WaylandTextInput
|
|||||||
{
|
{
|
||||||
struct zwp_text_input_v3 *text_input;
|
struct zwp_text_input_v3 *text_input;
|
||||||
SDL_Rect cursor_rect;
|
SDL_Rect cursor_rect;
|
||||||
|
SDL_bool has_preedit;
|
||||||
} SDL_WaylandTextInput;
|
} SDL_WaylandTextInput;
|
||||||
|
|
||||||
extern int Wayland_InitKeyboard(_THIS);
|
extern int Wayland_InitKeyboard(_THIS);
|
||||||
|
Loading…
Reference in New Issue
Block a user