diff options
author | dgp <dgp@users.sourceforge.net> | 2016-02-08 19:17:01 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2016-02-08 19:17:01 (GMT) |
commit | c64e1f5d87429b3278f38e9b89cfc8f6fe7767a6 (patch) | |
tree | 725cb54e8145c728a3cdd55719f56cff241245d5 | |
parent | c8f626a51dd7139e69c1c685e6431046e548bad0 (diff) | |
parent | 173f7cf4cfa6289eab436d64654e37090f2616f3 (diff) | |
download | tk-c64e1f5d87429b3278f38e9b89cfc8f6fe7767a6.zip tk-c64e1f5d87429b3278f38e9b89cfc8f6fe7767a6.tar.gz tk-c64e1f5d87429b3278f38e9b89cfc8f6fe7767a6.tar.bz2 |
merge 8.5
-rw-r--r-- | generic/tkTextDisp.c | 3 | ||||
-rw-r--r-- | tests/textDisp.test | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index 133a7d7..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 diff --git a/tests/textDisp.test b/tests/textDisp.test index ac3aee0..532caf4 100644 --- a/tests/textDisp.test +++ b/tests/textDisp.test @@ -1191,6 +1191,14 @@ test textDisp-8.12 {TkTextChanged, moving the insert cursor redraws only past an # because during (b) findDLine cannot return the display line the # cursor is in since this display line was just unlinked in (a). } {{8.0 9.0} {8.0 12.0} {8.0 12.0} {3.0 8.0} {2.0 3.0}} +test textDisp-8.13 {TkTextChanged, used to crash, see [06c1433906]} { + .t delete 1.0 end + .t insert 1.0 \nLine1\nLine2\n + update + .t insert 3.0 "" + .t delete 1.0 2.0 + update idletasks +} {} test textDisp-9.1 {TkTextRedrawTag} { .t configure -wrap char |