summaryrefslogtreecommitdiffstats
path: root/generic/tkTextDisp.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2014-12-07 18:53:20 (GMT)
committerfvogel <fvogelnew1@free.fr>2014-12-07 18:53:20 (GMT)
commit61dca66aa752bd2d8698f46fb47a1ec6f88dff77 (patch)
treee8b0c35b5ea635f2b978bede0efbe2f353b0bddb /generic/tkTextDisp.c
parent2143daab464ed81f9b1622f109a6f4c89d81aab2 (diff)
parentdd3d363f3b94a050a48b1d41f67a6e9aaba68fe9 (diff)
downloadtk-61dca66aa752bd2d8698f46fb47a1ec6f88dff77.zip
tk-61dca66aa752bd2d8698f46fb47a1ec6f88dff77.tar.gz
tk-61dca66aa752bd2d8698f46fb47a1ec6f88dff77.tar.bz2
Merged from branch bug-7703f947aa
Diffstat (limited to 'generic/tkTextDisp.c')
-rw-r--r--generic/tkTextDisp.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c
index ae5cdb2..4715864 100644
--- a/generic/tkTextDisp.c
+++ b/generic/tkTextDisp.c
@@ -5287,6 +5287,18 @@ MeasureUp(
distance -= dlPtr->height;
if (distance <= 0) {
*dstPtr = dlPtr->index;
+
+ /*
+ * Adjust index to the start of the display line. This is
+ * needed because the start of a logical line is not always
+ * the start of a display line (this is however true if the
+ * eol is not elided).
+ */
+
+ if (TkTextIsElided(textPtr, dstPtr, NULL)) {
+ TkTextFindDisplayLineEnd(textPtr, dstPtr, 0,
+ NULL);
+ }
if (overlap != NULL) {
*overlap = -distance;
}
@@ -5679,6 +5691,18 @@ YScrollByLines(
offset++;
if (offset == 0) {
textPtr->topIndex = dlPtr->index;
+
+ /*
+ * Adjust index to the start of the display line. This is
+ * needed because the start of a logical line is not
+ * always the start of a display line (this is however
+ * true if the eol is not elided).
+ */
+
+ if (TkTextIsElided(textPtr, &textPtr->topIndex, NULL)) {
+ TkTextFindDisplayLineEnd(textPtr, &textPtr->topIndex, 0,
+ NULL);
+ }
break;
}
}