mirror of
https://github.com/brl/mutter.git
synced 2024-12-25 20:32:16 +00:00
clutter: Fix ClutterText ::delete-surrounding IM implementation
The clutter_text_delete_text() function used underneath expects character offsets for both start/end position. Fix the end position passed an offset instead of that, and compesnate for the cursor position being always -1 when the caret is at the end of the string. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2384>
This commit is contained in:
parent
cfdca246f2
commit
b4cdf5e098
@ -356,10 +356,16 @@ clutter_text_input_focus_delete_surrounding (ClutterInputFocus *focus,
|
||||
guint len)
|
||||
{
|
||||
ClutterText *clutter_text = CLUTTER_TEXT_INPUT_FOCUS (focus)->text;
|
||||
ClutterTextBuffer *buffer;
|
||||
int cursor;
|
||||
int start;
|
||||
|
||||
buffer = get_buffer (clutter_text);
|
||||
|
||||
cursor = clutter_text_get_cursor_position (clutter_text);
|
||||
if (cursor < 0)
|
||||
cursor = clutter_text_buffer_get_length (buffer);
|
||||
|
||||
start = cursor + offset;
|
||||
if (start < 0)
|
||||
{
|
||||
@ -368,7 +374,7 @@ clutter_text_input_focus_delete_surrounding (ClutterInputFocus *focus,
|
||||
return;
|
||||
}
|
||||
if (clutter_text_get_editable (clutter_text))
|
||||
clutter_text_delete_text (clutter_text, start, len);
|
||||
clutter_text_delete_text (clutter_text, start, start + len);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user