imwayland: Clamp the surrounding string end correctly
In the paths where len > MAX_LEN and cursor/anchor are separated by at least MAX_LEN from text edges, we were clamping the right end of the surrounding string at MAX_LEN. Oops. This end anchor may go as far as the string length, although just up to len - MAX_LEN in real terms (due to the condition above that caches cursor/anchor positions being near enough the text end). Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2565
This commit is contained in:
@ -322,7 +322,7 @@ notify_surrounding_text (GtkIMContextWayland *context)
|
|||||||
mid = MIN (context->surrounding.cursor_idx,
|
mid = MIN (context->surrounding.cursor_idx,
|
||||||
context->surrounding.anchor_idx) + (cursor_len / 2);
|
context->surrounding.anchor_idx) + (cursor_len / 2);
|
||||||
a = MAX (0, mid - (MAX_LEN / 2));
|
a = MAX (0, mid - (MAX_LEN / 2));
|
||||||
b = MIN (MAX_LEN, mid + (MAX_LEN / 2));
|
b = MIN (len, mid + (MAX_LEN / 2));
|
||||||
|
|
||||||
start = &context->surrounding.text[a];
|
start = &context->surrounding.text[a];
|
||||||
end = &context->surrounding.text[b];
|
end = &context->surrounding.text[b];
|
||||||
|
|||||||
Reference in New Issue
Block a user