diff options
author | Paolo Borelli <pborelli@katamail.com> | 2006-08-17 01:12:02 +0000 |
---|---|---|
committer | Paolo Borelli <pborelli@src.gnome.org> | 2006-08-17 01:12:02 +0000 |
commit | 2bca4a48d043df577a6f5477b312b7f97adb29c7 (patch) | |
tree | d9da2735283bf95095b852bc3ea1d50cbe46d78f /gtk | |
parent | 6f4fa658339440abbb843a4798d9c7c8d87faa72 (diff) | |
download | gtk+-2bca4a48d043df577a6f5477b312b7f97adb29c7.tar.gz |
make sure the has-selection property is updated when the delection is
2006-08-17 Paolo Borelli <pborelli@katamail.com>
* gtk/gtktextbuffer.c: make sure the has-selection property is
updated when the delection is deleted. Bug #329752
* tests/testtext.c: add a copy menu item and show how to
update its sensitivity tracking the has-selection property.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtktextbuffer.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c index fa7f4980cf..3de0d79208 100644 --- a/gtk/gtktextbuffer.c +++ b/gtk/gtktextbuffer.c @@ -1388,6 +1388,8 @@ gtk_text_buffer_real_delete_range (GtkTextBuffer *buffer, GtkTextIter *start, GtkTextIter *end) { + gboolean has_selection; + g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer)); g_return_if_fail (start != NULL); g_return_if_fail (end != NULL); @@ -1397,6 +1399,13 @@ gtk_text_buffer_real_delete_range (GtkTextBuffer *buffer, /* may have deleted the selection... */ update_selection_clipboards (buffer); + has_selection = gtk_text_buffer_get_selection_bounds (buffer, NULL, NULL); + if (has_selection != buffer->has_selection) + { + buffer->has_selection = has_selection; + g_object_notify (G_OBJECT (buffer), "has-selection"); + } + g_signal_emit (buffer, signals[CHANGED], 0); g_object_notify (G_OBJECT (buffer), "cursor-position"); } @@ -1854,12 +1863,6 @@ gtk_text_buffer_set_mark (GtkTextBuffer *buffer, iter, should_exist); - if (_gtk_text_btree_mark_is_insert (get_btree (buffer), mark) || - _gtk_text_btree_mark_is_selection_bound (get_btree (buffer), mark)) - { - update_selection_clipboards (buffer); - } - _gtk_text_btree_get_iter_at_mark (get_btree (buffer), &location, mark); @@ -2200,7 +2203,6 @@ gtk_text_buffer_select_range (GtkTextBuffer *buffer, gtk_text_buffer_mark_set (buffer, &real_bound, gtk_text_buffer_get_mark (buffer, "selection_bound")); - update_selection_clipboards (buffer); } /* @@ -2306,6 +2308,8 @@ gtk_text_buffer_real_mark_set (GtkTextBuffer *buffer, { gboolean has_selection; + update_selection_clipboards (buffer); + has_selection = gtk_text_buffer_get_selection_bounds (buffer, NULL, NULL); |