implement overwrite mode
2001-06-01 Havoc Pennington <hp@redhat.com> * gtk/gtkentry.c (gtk_entry_commit_cb): implement overwrite mode * gtk/gtktextview.c (gtk_text_view_commit_handler): don't overwrite in overwrite mode if we already deleted the selection and replaced it with new text. * gtk/gtklabel.c (gtk_label_select_region_index): if you set the selection to an empty range, clear the clipboard if we owned it. (gtk_label_set_selectable): give up selection if we become unselectable. (gtk_label_state_changed): override state changed to unselect text when insensitive (get_text_callback): add paranoia check that indexes aren't outside of label->text (gtk_label_select_region): make -1 for start_offset mean "end of label," for consistency with GtkEditable * gtk/gtkmessagedialog.c (gtk_message_dialog_new): honor GTK_DIALOG_NO_SEPARATOR flag
This commit is contained in:
committed by
Havoc Pennington
parent
ad88113f34
commit
fe3e516aa1
@ -4906,8 +4906,13 @@ gtk_text_view_commit_handler (GtkIMContext *context,
|
||||
const gchar *str,
|
||||
GtkTextView *text_view)
|
||||
{
|
||||
gboolean had_selection;
|
||||
|
||||
gtk_text_buffer_begin_user_action (get_buffer (text_view));
|
||||
|
||||
had_selection = gtk_text_buffer_get_selection_bounds (get_buffer (text_view),
|
||||
NULL, NULL);
|
||||
|
||||
gtk_text_buffer_delete_selection (get_buffer (text_view), TRUE,
|
||||
text_view->editable);
|
||||
|
||||
@ -4918,7 +4923,7 @@ gtk_text_view_commit_handler (GtkIMContext *context,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (text_view->overwrite_mode)
|
||||
if (!had_selection && text_view->overwrite_mode)
|
||||
gtk_text_view_delete_from_cursor (text_view, GTK_DELETE_CHARS, 1);
|
||||
gtk_text_buffer_insert_interactive_at_cursor (get_buffer (text_view), str, -1,
|
||||
text_view->editable);
|
||||
|
||||
Reference in New Issue
Block a user