summaryrefslogtreecommitdiffstats
path: root/generic/tkTextMark.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2021-04-18 11:45:48 (GMT)
committerfvogel <fvogelnew1@free.fr>2021-04-18 11:45:48 (GMT)
commitc7001ef810392979672d06f30e272c43a679cb01 (patch)
treef45bfd3a438a6b080d7e0155f3ff33efec504e40 /generic/tkTextMark.c
parente697be6fa9901a1479c2b0de7b064d3b8b27b72c (diff)
parent4f342cf8461171eafee55086646adde29dd8631c (diff)
downloadtk-c7001ef810392979672d06f30e272c43a679cb01.zip
tk-c7001ef810392979672d06f30e272c43a679cb01.tar.gz
tk-c7001ef810392979672d06f30e272c43a679cb01.tar.bz2
Fix [34db75c0ac]: Text peer widget error on Down arrow key when passed -endline line. Also, propagate the fix for [1630271fff] from marks to embedded images and windows.
Diffstat (limited to 'generic/tkTextMark.c')
-rw-r--r--generic/tkTextMark.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/generic/tkTextMark.c b/generic/tkTextMark.c
index 5d4b5d5..9efa222 100644
--- a/generic/tkTextMark.c
+++ b/generic/tkTextMark.c
@@ -434,8 +434,6 @@ TkTextMarkNameToIndex(
TkTextIndex *indexPtr) /* Index information gets stored here. */
{
TkTextSegment *segPtr;
- TkTextIndex index;
- int start, end;
if (textPtr == NULL) {
return TCL_ERROR;
@@ -456,28 +454,17 @@ TkTextMarkNameToIndex(
}
TkTextMarkSegToIndex(textPtr, segPtr, indexPtr);
- /* If indexPtr refers to somewhere outside the -startline/-endline
+ /*
+ * If indexPtr refers to somewhere outside the -startline/-endline
* range limits of the widget, error out since the mark indeed is not
* reachable from this text widget (it may be reachable from a peer)
* (bug 1630271).
*/
- if (textPtr->start != NULL) {
- start = TkBTreeLinesTo(NULL, textPtr->start);
- TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, start, 0,
- &index);
- if (TkTextIndexCmp(indexPtr, &index) < 0) {
- return TCL_ERROR;
- }
- }
- if (textPtr->end != NULL) {
- end = TkBTreeLinesTo(NULL, textPtr->end);
- TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, end, 0,
- &index);
- if (TkTextIndexCmp(indexPtr, &index) > 0) {
- return TCL_ERROR;
- }
+ if (TkTextIndexAdjustToStartEnd(textPtr, indexPtr, 1) == TCL_ERROR) {
+ return TCL_ERROR;
}
+
return TCL_OK;
}