Make gtk_editable_get_chars work as before

It used to return actual entry contents, regardless of visiblity.
Make it do that again. This was reported in bug 588461.
This commit is contained in:
Matthias Clasen 2009-07-13 13:37:35 -04:00
parent ecd961fcf7
commit ea3184f129

View File

@ -4314,7 +4314,25 @@ gtk_entry_get_chars (GtkEditable *editable,
gint start_pos,
gint end_pos)
{
return gtk_entry_get_display_text (GTK_ENTRY (editable), start_pos, end_pos);
GtkEntry *entry = GTK_ENTRY (editable);
GtkEntryPrivate *priv = GTK_ENTRY_GET_PRIVATE (entry);
const gchar *text;
gint text_length;
gint start_index, end_index;
text = gtk_entry_buffer_get_text (priv->buffer);
text_length = gtk_entry_buffer_get_length (priv->buffer);
if (end_pos < 0)
end_pos = text_length;
start_pos = MIN (text_length, start_pos);
end_pos = MIN (text_length, end_pos);
start_index = g_utf8_offset_to_pointer (text, start_pos) - entry->text;
end_index = g_utf8_offset_to_pointer (text, end_pos) - entry->text;
return g_strndup (text + start_index, end_index - start_index);
}
static void