diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2016-02-08 15:52:53 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2016-02-08 15:52:53 (GMT) |
commit | 173f7cf4cfa6289eab436d64654e37090f2616f3 (patch) | |
tree | d5be70b19e023e63879342819ad51865ebe26fd1 /generic/tkTextDisp.c | |
parent | 4d5d07456b1dbac977bab6e1b594fe20bab56709 (diff) | |
download | tk-173f7cf4cfa6289eab436d64654e37090f2616f3.zip tk-173f7cf4cfa6289eab436d64654e37090f2616f3.tar.gz tk-173f7cf4cfa6289eab436d64654e37090f2616f3.tar.bz2 |
(cherry-pick): Fix [06c14339060ba9ae]: Text widget crash during delete. Thanks to François Vogel for the implementation and Brian Griffin for all his help getting this figured out.
Diffstat (limited to 'generic/tkTextDisp.c')
-rw-r--r-- | generic/tkTextDisp.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index 10f6414..91642f9 100644 --- a/generic/tkTextDisp.c +++ b/generic/tkTextDisp.c @@ -4683,6 +4683,9 @@ TextChanged( */ lastPtr = FindDLine(textPtr, dInfoPtr->dLinePtr, &rounded); + while ((lastPtr != NULL) && (TkTextIndexCmp(&lastPtr->index, &rounded) < 0)) { + lastPtr = lastPtr->nextPtr; + } /* * At least one display line is supposed to change. This makes the @@ -4699,11 +4702,6 @@ TextChanged( } } - while ((lastPtr != NULL) - && (lastPtr->index.linePtr == index2Ptr->linePtr)) { - lastPtr = lastPtr->nextPtr; - } - /* * Delete all the DLines from firstPtr up to but not including lastPtr. */ |