input-method-v2: validate commit serial

This commit is contained in:
pastel raschke 2023-12-18 11:15:29 +01:00 committed by Simon Ser
parent 6ee5bd9eee
commit 3bf9000a52

View file

@ -80,10 +80,15 @@ static void im_commit(struct wl_client *client, struct wl_resource *resource,
if (!input_method) { if (!input_method) {
return; return;
} }
if (serial != input_method->current_serial) {
free(input_method->pending.commit_text);
free(input_method->pending.preedit.text);
input_method->pending = (struct wlr_input_method_v2_state){0};
return;
}
free(input_method->current.commit_text); free(input_method->current.commit_text);
free(input_method->current.preedit.text); free(input_method->current.preedit.text);
input_method->current = input_method->pending; input_method->current = input_method->pending;
input_method->current_serial = serial;
input_method->pending = (struct wlr_input_method_v2_state){0}; input_method->pending = (struct wlr_input_method_v2_state){0};
wl_signal_emit_mutable(&input_method->events.commit, input_method); wl_signal_emit_mutable(&input_method->events.commit, input_method);
} }