diff options
author | fvogel <fvogelnew1@free.fr> | 2015-12-12 17:44:50 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2015-12-12 17:44:50 (GMT) |
commit | 72dde23165afa96dcc2cc50263394cefafe8e403 (patch) | |
tree | f1e1a4b536a4fa225d18dfe708718cb67764c192 | |
parent | 2f891a9b652694baa3de7783650137a17f0d9f98 (diff) | |
parent | 92c4176bdae17dbc3ab1d73817e155043caeb781 (diff) | |
download | tk-72dde23165afa96dcc2cc50263394cefafe8e403.zip tk-72dde23165afa96dcc2cc50263394cefafe8e403.tar.gz tk-72dde23165afa96dcc2cc50263394cefafe8e403.tar.bz2 |
Fix for bug [1739605] - [text see] misbehaves following widget create/populate - Patch from Koen Danckaert
-rw-r--r-- | generic/tkTextDisp.c | 9 | ||||
-rw-r--r-- | tests/textDisp.test | 11 |
2 files changed, 20 insertions, 0 deletions
diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index 74620fc..86a81c0 100644 --- a/generic/tkTextDisp.c +++ b/generic/tkTextDisp.c @@ -5239,6 +5239,15 @@ TkTextSetYView( } /* + * If the window height is smaller than the line height, prefer to make + * the top of the line visible. + */ + + if (dInfoPtr->maxY - dInfoPtr->y < lineHeight) { + bottomY = lineHeight; + } + + /* * Our job now is to arrange the display so that indexPtr appears as low * on the screen as possible but with its bottom no lower than bottomY. * BottomY is the bottom of the window if the desired line is just below diff --git a/tests/textDisp.test b/tests/textDisp.test index 5508d7c..038eccd 100644 --- a/tests/textDisp.test +++ b/tests/textDisp.test @@ -1574,6 +1574,17 @@ test textDisp-11.20 {TkTextSetYView, see in elided lines} { # this shall not crash (null chunkPtr in TkTextSeeCmd is tested) .top.t see 3.0 } {} +test textDisp-11.21 {TkTextSetYView, window height smaller than the line height} { + .top.t delete 1.0 end + for {set i 1} {$i <= 10} {incr i} { + .top.t insert end "Line $i\n" + } + set lineheight [font metrics [.top.t cget -font] -linespace] + wm geometry .top 200x[expr {$lineheight / 2}] + update + .top.t see 1.0 + .top.t index @0,[expr {$lineheight - 2}] +} {1.0} .t configure -wrap word .t delete 50.0 51.0 |