diff options
Diffstat (limited to 'gtk/gtkentry.c')
-rw-r--r-- | gtk/gtkentry.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 86949860f8..fd5733a908 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -1862,7 +1862,12 @@ gtk_entry_real_insert_text (GtkEditable *editable, else { entry->text_size = MAX_SIZE; - new_text_length = entry->text_size - entry->n_bytes - 1; + if (new_text_length > (gint)entry->text_size - (gint)entry->n_bytes - 1) + { + new_text_length = (gint)entry->text_size - (gint)entry->n_bytes - 1; + new_text_length = g_utf8_find_prev_char (new_text, new_text + new_text_length + 1) - new_text; + n_chars = g_utf8_strlen (new_text, new_text_length); + } break; } } |