diff options
author | Jon Trowbridge <trow@ximian.com> | 2001-09-10 06:59:02 +0800 |
---|---|---|
committer | Jon Trowbridge <trow@src.gnome.org> | 2001-09-10 06:59:02 +0800 |
commit | e0cd01768a540ba9c4805fd03016dfa92dc48bd7 (patch) | |
tree | c18d09346e7fa3c4c7d34cd2683d36a3b349418c | |
parent | adc1b15126a1f83d40ea5a66db79f1b55e0fbde6 (diff) | |
download | gsoc2013-evolution-e0cd01768a540ba9c4805fd03016dfa92dc48bd7.tar.gz gsoc2013-evolution-e0cd01768a540ba9c4805fd03016dfa92dc48bd7.tar.zst gsoc2013-evolution-e0cd01768a540ba9c4805fd03016dfa92dc48bd7.zip |
If our text shrinks, make sure that the selection doesn't spill off over
2001-09-09 Jon Trowbridge <trow@ximian.com>
* gal/e-text/e-text.c (e_text_text_model_changed): If our text shrinks,
make sure that the selection doesn't spill off over the end of the
reduced buffer. (Related to bug #8535)
svn path=/trunk/; revision=12717
-rw-r--r-- | widgets/text/e-text.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/widgets/text/e-text.c b/widgets/text/e-text.c index b0dd3261e7..225fb610a7 100644 --- a/widgets/text/e-text.c +++ b/widgets/text/e-text.c @@ -519,9 +519,16 @@ e_text_destroy (GtkObject *object) static void e_text_text_model_changed (ETextModel *model, EText *text) { + gint model_len = e_text_model_get_text_length (model); text->text = e_text_model_get_text(model); e_text_free_lines(text); + gtk_signal_emit (GTK_OBJECT (text), e_text_signals[E_TEXT_CHANGED]); + + /* Make sure our selection doesn't extend past the bounds of our text. */ + text->selection_start = CLAMP (text->selection_start, 0, model_len); + text->selection_end = CLAMP (text->selection_end, 0, model_len); + text->needs_split_into_lines = 1; e_canvas_item_request_reflow (GNOME_CANVAS_ITEM(text)); } |