From cc145a23218a5bfacb8aaf799203c070812be5fe Mon Sep 17 00:00:00 2001 From: vincentdarley Date: Mon, 3 Nov 2003 16:10:10 +0000 Subject: text widget and test suite fixes --- ChangeLog | 7 + generic/tkTextDisp.c | 25 ++- tests/textDisp.test | 580 ++++++++++++++++++++++++++++----------------------- 3 files changed, 343 insertions(+), 269 deletions(-) diff --git a/ChangeLog b/ChangeLog index ccf99e6..10943b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-11-03 Vince Darley + + * generic/tkTextDisp.c + * tests/textDisp.test: test and fix to a panic reported in + [Bug 833627], with tkchat, and an unused variable [Bug 835010]. + Also fixes substantial parts of [Bug 833761] + 2003-11-03 Donal K. Fellows * library/demos/widget, etc.: Made widget demos locate themselves diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index f57d63f..08680f9 100644 --- a/generic/tkTextDisp.c +++ b/generic/tkTextDisp.c @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkTextDisp.c,v 1.21 2003/11/03 13:10:05 dkf Exp $ + * RCS: @(#) $Id: tkTextDisp.c,v 1.22 2003/11/03 16:10:12 vincentdarley Exp $ */ #include "tkPort.h" @@ -957,14 +957,18 @@ LayoutDLine(textPtr, indexPtr) if (elide && indexPtr->byteIndex==0) { maxBytes = 0; for (segPtr = indexPtr->linePtr->segPtr; - elide && (segPtr != NULL); + segPtr != NULL; segPtr = segPtr->nextPtr) { - if ((elidesize = segPtr->size) > 0) { - maxBytes += elidesize; - /* - * If have we have a tag toggle, there is a chance - * that invisibility state changed, so bail out - */ + if (segPtr->size > 0) { + if (elide == 0) { + /* + * We toggled a tag and the elide state changed to + * visible, and we have something of non-zero + * size. Therefore we must bail out. + */ + break; + } + maxBytes += segPtr->size; } else if ((segPtr->typePtr == &tkTextToggleOffType) || (segPtr->typePtr == &tkTextToggleOnType)) { if (segPtr->body.toggle.tagPtr->elideString != NULL) { @@ -5733,12 +5737,11 @@ DlineXOfIndex(textPtr, dlPtr, byteIndex) int byteIndex; /* The byte index for which we want the * coordinate. */ { - TextDInfo *dInfoPtr = textPtr->dInfoPtr; - register TkTextDispChunk *chunkPtr; + register TkTextDispChunk *chunkPtr = dlPtr->chunkPtr; TkTextIndex index; int x; - if (byteIndex == 0) return 0; + if (byteIndex == 0 || chunkPtr == NULL) return 0; /* * Scan through the line's chunks to find the one that contains diff --git a/tests/textDisp.test b/tests/textDisp.test index 64b9bdd..61da0c4 100644 --- a/tests/textDisp.test +++ b/tests/textDisp.test @@ -6,13 +6,23 @@ # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # -# RCS: @(#) $Id: textDisp.test,v 1.12 2003/10/31 18:05:49 vincentdarley Exp $ +# RCS: @(#) $Id: textDisp.test,v 1.13 2003/11/03 16:10:12 vincentdarley Exp $ package require tcltest 2.1 eval tcltest::configure $argv tcltest::loadTestedCommands namespace import -force tcltest::test +if {[tcltest::testConstraint fonts]} { + tcltest::testConstraint textfonts 1 +} else { + if {$::tcl_platform(platform) eq "windows"} { + tcltest::testConstraint textfonts 1 + } else { + tcltest::testConstraint textfonts 0 + } +} + # The procedure below is used as the scrolling command for the text; # it just saves the scrolling information in a variable "scrollInfo". @@ -43,11 +53,28 @@ frame .f -width 100 -height 20 pack append . .f left set fixedFont {Courier -12} +# 15 on XP, 13 on Solaris 8 set fixedHeight [font metrics $fixedFont -linespace] +# 7 on all platforms set fixedWidth [font measure $fixedFont m] +# 12 on XP +set fixedAscent [font metrics $fixedFont -ascent] +set fixedDiff [expr {$fixedHeight - 13}] ;# 2 on XP set varFont {Times -14} +# 16 on XP, 15 on Solaris 8 +set varHeight [font metrics $varFont -linespace] +# 13 on XP +set varAscent [font metrics $varFont -ascent] +set varDiff [expr {$varHeight - 15}] ;# 1 on XP + set bigFont {Helvetica -24} +# 27 on XP, 27 on Solaris 8 +set bigHeight [font metrics $bigFont -linespace] +# 21 on XP +set bigAscent [font metrics $bigFont -ascent] +set ascentDiff [expr {$bigAscent - $fixedAscent}] + text .t -font $fixedFont -width 20 -height 10 -yscrollcommand scroll pack append . .t {top expand fill} .t tag configure big -font $bigFont @@ -73,6 +100,37 @@ update if {([winfo rooty .] < 50) || ([winfo rootx .] < 50)} { wm geom . +50+50 } + +test textDisp-0.1 {double tag elide transition} { + # Example from tkchat crash. For some reason can only + # get this test case to crash when first. + catch {destroy .top} + pack [text .top] + + foreach val {0 1 2 3} { + .top insert 1.0 "hello\n" + .top tag configure tag$val + .top tag add tag$val 1.0 2.0 + set ::Options(tag$val) 0 + } + + proc DoVis {tag} { + .top tag config $tag -elide $::Options($tag) + } + + proc NickVis {val} { + foreach t [array names ::Options ] { + if {$::Options($t) != $val} { + set ::Options($t) $val + DoVis $t + } + } + } + NickVis 1 + unset ::Options + destroy .top +} {} + test textDisp-1.1 {GetStyle procedure, priorities and tab stops} { .t delete 1.0 end .t insert 1.0 "x\ty" @@ -91,9 +149,9 @@ test textDisp-1.1 {GetStyle procedure, priorities and tab stops} { .t tag raise x update idletasks lappend x [lindex [.t bbox 1.2] 0] -} {75 55 55} +} [list 75 55 55] .t tag delete x y z -test textDisp-1.2 {GetStyle procedure, wrapmode} {fonts} { +test textDisp-1.2 {GetStyle procedure, wrapmode} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcd\nefg hijkl mnop qrstuv wxyz" @@ -106,7 +164,7 @@ test textDisp-1.2 {GetStyle procedure, wrapmode} {fonts} { lappend result [.t bbox 2.20] .t tag add y 1.end 2.2 lappend result [.t bbox 2.20] -} {{5 31 7 13} {40 31 7 13} {}} +} [list [list 5 [expr {5+2*$fixedHeight}] 7 $fixedHeight] [list 40 [expr {5+2*$fixedHeight}] 7 $fixedHeight] {}] .t tag delete x y test textDisp-2.1 {LayoutDLine, basics} { @@ -115,49 +173,49 @@ test textDisp-2.1 {LayoutDLine, basics} { .t insert 1.0 "This is some sample text for testing." list [.t bbox 1.19] [.t bbox 1.20] } [list [list [expr 5 + $fixedWidth * 19] 5 $fixedWidth $fixedHeight] [list 5 [expr 5 + $fixedHeight] $fixedWidth $fixedHeight]] -test textDisp-2.2 {LayoutDLine, basics} {fonts} { +test textDisp-2.2 {LayoutDLine, basics} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "This isx some sample text for testing." list [.t bbox 1.19] [.t bbox 1.20] -} {{138 5 7 13} {5 18 7 13}} -test textDisp-2.3 {LayoutDLine, basics} {fonts} { +} [list [list 138 5 7 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-2.3 {LayoutDLine, basics} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "This isxxx some sample text for testing." list [.t bbox 1.19] [.t bbox 1.20] -} {{138 5 7 13} {5 18 7 13}} -test textDisp-2.4 {LayoutDLine, word wrap} {fonts} { +} [list [list 138 5 7 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-2.4 {LayoutDLine, word wrap} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "This is some sample text for testing." list [.t bbox 1.19] [.t bbox 1.20] -} {{138 5 7 13} {5 18 7 13}} -test textDisp-2.5 {LayoutDLine, word wrap} {fonts} { +} [list [list 138 5 7 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-2.5 {LayoutDLine, word wrap} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "This isx some sample text for testing." list [.t bbox 1.13] [.t bbox 1.14] [.t bbox 1.19] -} {{96 5 49 13} {5 18 7 13} {40 18 7 13}} -test textDisp-2.6 {LayoutDLine, word wrap} {fonts} { +} [list [list 96 5 49 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 40 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-2.6 {LayoutDLine, word wrap} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "This isxxx some sample text for testing." list [.t bbox 1.15] [.t bbox 1.16] -} {{110 5 35 13} {5 18 7 13}} -test textDisp-2.7 {LayoutDLine, marks and tags} {fonts} { +} [list [list 110 5 35 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-2.7 {LayoutDLine, marks and tags} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "This isxxx some sample text for testing." .t tag add foo 1.4 1.6 .t mark set insert 1.8 list [.t bbox 1.2] [.t bbox 1.5] [.t bbox 1.11] -} {{19 5 7 13} {40 5 7 13} {82 5 7 13}} +} [list [list 19 5 7 $fixedHeight] [list 40 5 7 $fixedHeight] [list 82 5 7 $fixedHeight]] foreach m [.t mark names] { catch {.t mark unset $m} } scan [wm geom .] %dx%d width height -test textDisp-2.8 {LayoutDLine, extra chunk at end of dline} {fonts} { +test textDisp-2.8 {LayoutDLine, extra chunk at end of dline} {textfonts} { wm geom . [expr $width+1]x$height update .t configure -wrap char @@ -165,16 +223,16 @@ test textDisp-2.8 {LayoutDLine, extra chunk at end of dline} {fonts} { .t insert 1.0 "This isxx some sample text for testing." .t mark set foo 1.20 list [.t bbox 1.19] [.t bbox 1.20] -} {{138 5 8 13} {5 18 7 13}} +} [list [list 138 5 8 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight]] wm geom . {} update -test textDisp-2.9 {LayoutDLine, marks and tags} {fonts} { +test textDisp-2.9 {LayoutDLine, marks and tags} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "This is a very_very_long_word_that_wraps." list [.t bbox 1.9] [.t bbox 1.10] [.t bbox 1.25] -} {{68 5 77 13} {5 18 7 13} {110 18 7 13}} -test textDisp-2.10 {LayoutDLine, marks and tags} {fonts} { +} [list [list 68 5 77 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 110 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-2.10 {LayoutDLine, marks and tags} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "This is a very_very_long_word_that_wraps." @@ -183,14 +241,14 @@ test textDisp-2.10 {LayoutDLine, marks and tags} {fonts} { .t tag add foo 1.17 .t tag add foo 1.19 list [.t bbox 1.9] [.t bbox 1.10] [.t bbox 1.25] -} {{68 5 77 13} {5 18 7 13} {110 18 7 13}} -test textDisp-2.11 {LayoutDLine, newline width} {fonts} { +} [list [list 68 5 77 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 110 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-2.11 {LayoutDLine, newline width} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "a\nbb\nccc\ndddd" list [.t bbox 2.2] [.t bbox 3.3] -} {{19 18 126 13} {26 31 119 13}} -test textDisp-2.12 {LayoutDLine, justification} {fonts} { +} [list [list 19 [expr {$fixedDiff + 18}] 126 $fixedHeight] [list 26 [expr {2*$fixedDiff + 31}] 119 $fixedHeight]] +test textDisp-2.12 {LayoutDLine, justification} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "\na\nbb\nccc\ndddd" @@ -198,8 +256,8 @@ test textDisp-2.12 {LayoutDLine, justification} {fonts} { .t tag add x 1.0 end .t tag add y 3.0 3.2 list [.t bbox 1.0] [.t bbox 2.0] [.t bbox 4.0] [.t bbox 4.2] -} {{75 5 70 13} {71 18 7 13} {64 44 7 13} {78 44 7 13}} -test textDisp-2.13 {LayoutDLine, justification} {fonts} { +} [list [list 75 5 70 $fixedHeight] [list 71 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 64 [expr {3*$fixedDiff + 44}] 7 $fixedHeight] [list 78 [expr {3*$fixedDiff + 44}] 7 $fixedHeight]] +test textDisp-2.13 {LayoutDLine, justification} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "\na\nbb\nccc\ndddd" @@ -207,8 +265,8 @@ test textDisp-2.13 {LayoutDLine, justification} {fonts} { .t tag add x 1.0 end .t tag add y 3.0 3.2 list [.t bbox 1.0] [.t bbox 2.0] [.t bbox 4.0] [.t bbox 4.2] -} {{145 5 0 13} {138 18 7 13} {124 44 7 13} {138 44 7 13}} -test textDisp-2.14 {LayoutDLine, justification} {fonts} { +} [list [list 145 5 0 $fixedHeight] [list 138 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 124 [expr {3*$fixedDiff + 44}] 7 $fixedHeight] [list 138 [expr {3*$fixedDiff + 44}] 7 $fixedHeight]] +test textDisp-2.14 {LayoutDLine, justification} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "\na\nbb\nccc\ndddd" @@ -218,8 +276,8 @@ test textDisp-2.14 {LayoutDLine, justification} {fonts} { .t tag add y 3.0 4.0 .t tag raise y list [.t bbox 2.0] [.t bbox 3.0] [.t bbox 3.end] [.t bbox 4.0] -} {{71 18 7 13} {131 31 7 13} {145 31 0 13} {5 44 7 13}} -test textDisp-2.15 {LayoutDLine, justification} {fonts} { +} [list [list 71 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 131 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] [list 145 [expr {2*$fixedDiff + 31}] 0 $fixedHeight] [list 5 [expr {3*$fixedDiff + 44}] 7 $fixedHeight]] +test textDisp-2.15 {LayoutDLine, justification} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "\na\nbb\nccc\ndddd" @@ -229,8 +287,8 @@ test textDisp-2.15 {LayoutDLine, justification} {fonts} { .t tag add y 3.0 4.0 .t tag lower y list [.t bbox 2.0] [.t bbox 3.0] [.t bbox 3.end] [.t bbox 4.0] -} {{71 18 7 13} {68 31 7 13} {82 31 63 13} {5 44 7 13}} -test textDisp-2.16 {LayoutDLine, justification} {fonts} { +} [list [list 71 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 68 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] [list 82 [expr {2*$fixedDiff + 31}] 63 $fixedHeight] [list 5 [expr {3*$fixedDiff + 44}] 7 $fixedHeight]] +test textDisp-2.16 {LayoutDLine, justification} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines" @@ -238,16 +296,16 @@ test textDisp-2.16 {LayoutDLine, justification} {fonts} { .t tag add x 1.1 1.20 .t tag add x 1.21 1.end list [.t bbox 1.0] [.t bbox 1.20] [.t bbox 1.36] [.t bbox 2.0] -} {{5 5 7 13} {5 18 7 13} {43 31 7 13} {5 44 7 13}} -test textDisp-2.17 {LayoutDLine, justification} {fonts} { +} [list [list 5 5 7 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 43 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] [list 5 [expr {3*$fixedDiff + 44}] 7 $fixedHeight]] +test textDisp-2.17 {LayoutDLine, justification} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines" .t tag configure x -justify center .t tag add x 1.20 list [.t bbox 1.0] [.t bbox 1.20] [.t bbox 1.36] [.t bbox 2.0] -} {{5 5 7 13} {19 18 7 13} {5 31 7 13} {5 44 7 13}} -test textDisp-2.18 {LayoutDLine, justification} {fonts} { +} [list [list 5 5 7 $fixedHeight] [list 19 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 5 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] [list 5 [expr {3*$fixedDiff + 44}] 7 $fixedHeight]] +test textDisp-2.18 {LayoutDLine, justification} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert 1.0 "Lots of long words, enough to extend out of the window\n" @@ -258,18 +316,18 @@ test textDisp-2.18 {LayoutDLine, justification} {fonts} { .t tag add y 3.0 .t xview scroll 5 units list [.t bbox 2.0] [.t bbox 3.0] -} {{26 18 7 13} {40 31 7 13}} +} [list [list 26 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 40 [expr {2*$fixedDiff + 31}] 7 $fixedHeight]] .t tag delete x .t tag delete y -test textDisp-2.19 {LayoutDLine, margins} {fonts} { +test textDisp-2.19 {LayoutDLine, margins} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines" .t tag configure x -lmargin1 20 -lmargin2 40 -rmargin 15 .t tag add x 1.0 end list [.t bbox 1.0] [.t bbox 1.12] [.t bbox 1.13] [.t bbox 2.0] -} {{25 5 7 13} {109 5 36 13} {45 18 7 13} {25 70 7 13}} -test textDisp-2.20 {LayoutDLine, margins} {fonts} { +} [list [list 25 5 7 $fixedHeight] [list 109 5 36 $fixedHeight] [list 45 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 25 [expr {5*$fixedDiff + 70}] 7 $fixedHeight]] +test textDisp-2.20 {LayoutDLine, margins} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines" @@ -279,18 +337,18 @@ test textDisp-2.20 {LayoutDLine, margins} {fonts} { .t tag add x 1.0 end .t tag add y 1.13 list [.t bbox 1.0] [.t bbox 1.13] [.t bbox 1.30] [.t bbox 2.0] -} {{25 5 7 13} {10 18 7 13} {15 31 7 13} {25 44 7 13}} -test textDisp-2.21 {LayoutDLine, margins} {fonts} { +} [list [list 25 5 7 $fixedHeight] [list 10 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 15 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] [list 25 [expr {3*$fixedDiff + 44}] 7 $fixedHeight]] +test textDisp-2.21 {LayoutDLine, margins} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "Sample text" .t tag configure x -lmargin1 80 -lmargin2 80 -rmargin 100 .t tag add x 1.0 end list [.t bbox 1.0] [.t bbox 1.1] [.t bbox 1.2] -} {{85 5 60 13} {85 18 60 13} {85 31 60 13}} +} [list [list 85 5 60 $fixedHeight] [list 85 [expr {$fixedDiff + 18}] 60 $fixedHeight] [list 85 [expr {2*$fixedDiff + 31}] 60 $fixedHeight]] .t tag delete x .t tag delete y -test textDisp-2.22 {LayoutDLine, spacing options} {fonts} { +test textDisp-2.22 {LayoutDLine, spacing options} {textfonts} { .t configure -wrap word .t delete 1.0 end .t tag delete x y @@ -315,9 +373,9 @@ test textDisp-2.22 {LayoutDLine, spacing options} {fonts} { set i [.t dlineinfo 3.0] set b4 [expr [lindex $i 1] + [lindex $i 4] - $b4] list $b1 $b2 $b3 $b4 -} {2 7 10 15} +} [list 2 7 10 15] .t configure -spacing1 0 -spacing2 0 -spacing3 0 -test textDisp-2.23 {LayoutDLine, spacing options} {fonts} { +test textDisp-2.23 {LayoutDLine, spacing options} {textfonts} { .t configure -wrap word .t delete 1.0 end .t tag delete x y @@ -347,9 +405,9 @@ test textDisp-2.23 {LayoutDLine, spacing options} {fonts} { set i [.t dlineinfo 3.0] set b4 [expr [lindex $i 1] + [lindex $i 4] - $b4] list $b1 $b2 $b3 $b4 -} {1 5 13 16} +} [list 1 5 13 16] .t configure -spacing1 0 -spacing2 0 -spacing3 0 -test textDisp-2.24 {LayoutDLine, tabs, saving from first chunk} {fonts} { +test textDisp-2.24 {LayoutDLine, tabs, saving from first chunk} {textfonts} { .t delete 1.0 end .t tag delete x y .t tag configure x -tabs 70 @@ -359,53 +417,53 @@ test textDisp-2.24 {LayoutDLine, tabs, saving from first chunk} {fonts} { .t tag add y 1.1 end lindex [.t bbox 1.3] 0 } {75} -test textDisp-2.25 {LayoutDLine, tabs, breaking chunks at tabs} {fonts} { +test textDisp-2.25 {LayoutDLine, tabs, breaking chunks at tabs} {textfonts} { .t delete 1.0 end .t tag delete x - .t tag configure x -tabs {30 60 90 120} + .t tag configure x -tabs [list 30 60 90 120] .t insert 1.0 "a\tb\tc\td\te" .t mark set dummy1 1.1 .t mark set dummy2 1.2 .t tag add x 1.0 end list [lindex [.t bbox 1.2] 0] [lindex [.t bbox 1.4] 0] \ [lindex [.t bbox 1.6] 0] [lindex [.t bbox 1.8] 0] -} {35 65 95 125} -test textDisp-2.26 {LayoutDLine, tabs, breaking chunks at tabs} {fonts} { +} [list 35 65 95 125] +test textDisp-2.26 {LayoutDLine, tabs, breaking chunks at tabs} {textfonts} { .t delete 1.0 end .t tag delete x - .t tag configure x -tabs {30 60 90 120} -justify right + .t tag configure x -tabs [list 30 60 90 120] -justify right .t insert 1.0 "a\tb\tc\td\te" .t mark set dummy1 1.1 .t mark set dummy2 1.2 .t tag add x 1.0 end list [lindex [.t bbox 1.2] 0] [lindex [.t bbox 1.4] 0] \ [lindex [.t bbox 1.6] 0] [lindex [.t bbox 1.8] 0] -} {117 124 131 138} -test textDisp-2.27 {LayoutDLine, tabs, calling AdjustForTab} {fonts} { +} [list 117 124 131 138] +test textDisp-2.27 {LayoutDLine, tabs, calling AdjustForTab} {textfonts} { .t delete 1.0 end .t tag delete x - .t tag configure x -tabs {30 60} + .t tag configure x -tabs [list 30 60] .t insert 1.0 "a\tb\tcd" .t tag add x 1.0 end list [lindex [.t bbox 1.2] 0] [lindex [.t bbox 1.4] 0] -} {35 65} -test textDisp-2.28 {LayoutDLine, tabs, running out of space in dline} {fonts} { +} [list 35 65] +test textDisp-2.28 {LayoutDLine, tabs, running out of space in dline} {textfonts} { .t delete 1.0 end .t insert 1.0 "a\tb\tc\td" .t bbox 1.6 -} {5 18 7 13} -test textDisp-2.29 {LayoutDLine, tabs, running out of space in dline} {fonts} { +} [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] +test textDisp-2.29 {LayoutDLine, tabs, running out of space in dline} {textfonts} { .t delete 1.0 end .t insert 1.0 "a\tx\tabcd" .t bbox 1.4 -} {117 5 7 13} -test textDisp-2.30 {LayoutDLine, tabs, running out of space in dline} {fonts} { +} [list 117 5 7 $fixedHeight] +test textDisp-2.30 {LayoutDLine, tabs, running out of space in dline} {textfonts} { .t delete 1.0 end .t insert 1.0 "a\tx\tabc" .t bbox 1.4 -} {117 5 7 13} +} [list 117 5 7 $fixedHeight] -test textDisp-3.1 {different character sizes} {fonts} { +test textDisp-3.1 {different character sizes} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert end "Some sample text, including both large\n" @@ -414,10 +472,9 @@ test textDisp-3.1 {different character sizes} {fonts} { .t tag add big 1.5 1.10 .t tag add big 2.11 2.14 list [.t bbox 1.1] [.t bbox 1.6] [.t dlineinfo 1.0] [.t dlineinfo 3.0] -} {{12 17 7 13} {52 5 13 27} {5 5 114 27 22} {5 85 35 13 10}} - +} [list [list 12 [expr {5+$ascentDiff}] 7 $fixedHeight] [list 52 5 13 27] [list 5 5 114 27 [font metrics $bigFont -ascent]] [list 5 [expr {2* $fixedDiff + 85}] 35 $fixedHeight [expr {$fixedDiff + 10}]]] .t configure -wrap char -test textDisp-4.1 {UpdateDisplayInfo, basic} {fonts} { +test textDisp-4.1 {UpdateDisplayInfo, basic} {textfonts} { .t delete 1.0 end .t insert end "Line 1\nLine 2\nLine 3\n" update @@ -425,8 +482,8 @@ test textDisp-4.1 {UpdateDisplayInfo, basic} {fonts} { .t insert 2.0 "New Line 2" update list [.t bbox 1.0] [.t bbox 2.0] [.t bbox 3.0] $tk_textRelayout -} {{5 5 7 13} {5 18 7 13} {5 31 7 13} 2.0} -test textDisp-4.2 {UpdateDisplayInfo, re-use tail of text line} {fonts} { +} [list [list 5 5 7 $fixedHeight] [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 5 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] 2.0] +test textDisp-4.2 {UpdateDisplayInfo, re-use tail of text line} {textfonts} { .t delete 1.0 end .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3" update @@ -435,8 +492,8 @@ test textDisp-4.2 {UpdateDisplayInfo, re-use tail of text line} {fonts} { .t insert 2.0 X update list [.t bbox 2.0] [.t bbox x] [.t bbox 3.0] $tk_textRelayout -} {{5 18 7 13} {12 31 7 13} {5 44 7 13} {2.0 2.20}} -test textDisp-4.3 {UpdateDisplayInfo, tail of text line shifts} {fonts} { +} [list [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 12 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] [list 5 [expr {3*$fixedDiff + 44}] 7 $fixedHeight] {2.0 2.20}] +test textDisp-4.3 {UpdateDisplayInfo, tail of text line shifts} {textfonts} { .t delete 1.0 end .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3" update @@ -444,16 +501,19 @@ test textDisp-4.3 {UpdateDisplayInfo, tail of text line shifts} {fonts} { .t delete 2.2 update list [.t bbox 2.0] [.t bbox x] [.t bbox 3.0] $tk_textRelayout -} {{5 18 7 13} {5 31 7 13} {5 44 7 13} {2.0 2.20}} +} [list [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 5 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] [list 5 [expr {3*$fixedDiff + 44}] 7 $fixedHeight] {2.0 2.20}] .t mark unset x -test textDisp-4.4 {UpdateDisplayInfo, wrap-mode "none"} {fonts} { +test textDisp-4.4 {UpdateDisplayInfo, wrap-mode "none"} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3" update list [.t bbox 2.0] [.t bbox 2.25] [.t bbox 3.0] $tk_textRelayout -} {{5 18 7 13} {} {5 31 7 13} {1.0 2.0 3.0}} -test textDisp-4.5 {UpdateDisplayInfo, tiny window} {fonts} { +} [list [list 5 [expr {$fixedDiff + 18}] 7 $fixedHeight] {} [list 5 [expr {2*$fixedDiff + 31}] 7 $fixedHeight] {1.0 2.0 3.0}] +test textDisp-4.5 {UpdateDisplayInfo, tiny window} {textfonts} { + if {$tcl_platform(platform) == "windows"} { + wm overrideredirect . 1 + } wm geom . 103x$height update .t configure -wrap none @@ -461,7 +521,7 @@ test textDisp-4.5 {UpdateDisplayInfo, tiny window} {fonts} { .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3" update list [.t bbox 2.0] [.t bbox 2.1] [.t bbox 3.0] $tk_textRelayout -} {{5 18 1 13} {} {5 31 1 13} {1.0 2.0 3.0}} +} [list [list 5 [expr {$fixedDiff + 18}] 1 $fixedHeight] {} [list 5 [expr {2*$fixedDiff + 31}] 1 $fixedHeight] {1.0 2.0 3.0}] test textDisp-4.6 {UpdateDisplayInfo, tiny window} { # This test was failing on Windows because the title bar on . # was a certain minimum size and it was interfering with the size @@ -485,7 +545,7 @@ test textDisp-4.6 {UpdateDisplayInfo, tiny window} { wm overrideredirect . 0 update set x -} {{5 5 1 1} {} 1.0} +} [list [list 5 5 1 1] {} 1.0] catch {destroy .f2} .t configure -borderwidth 0 -wrap char wm geom . {} @@ -521,14 +581,14 @@ test textDisp-4.8 {UpdateDisplayInfo, filling in extra vertical space} { update set x [list [.t index @0,0] $tk_textRelayout $tk_textRedraw] } {1.0 {5.0 4.0 3.0 2.0 1.0} {1.0 2.0 3.0 4.0 5.0 eof}} -test textDisp-4.9 {UpdateDisplayInfo, filling in extra vertical space} {fonts} { +test textDisp-4.9 {UpdateDisplayInfo, filling in extra vertical space} {textfonts} { .t delete 1.0 end .t insert end "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17" .t yview 16.0 update .t delete 15.0 end list [.t bbox 7.0] [.t bbox 12.0] -} {{3 29 7 13} {3 94 7 13}} +} [list [list 3 [expr {2*$fixedDiff + 29}] 7 $fixedHeight] [list 3 [expr {7*$fixedDiff + 94}] 7 $fixedHeight]] test textDisp-4.10 {UpdateDisplayInfo, filling in extra vertical space} { .t delete 1.0 end .t insert end "1\n2\n3\n4\n5\nLine 6 is such a long line that it wraps around.\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17" @@ -599,7 +659,7 @@ test textDisp-4.16 {UpdateDisplayInfo, special handling for top/bottom lines} { update list $tk_textRelayout $tk_textRedraw } {{2.0 3.0} {2.0 3.0}} -test textDisp-4.17 {UpdateDisplayInfo, horizontal scrolling} {fonts} { +test textDisp-4.17 {UpdateDisplayInfo, horizontal scrolling} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally" @@ -609,8 +669,8 @@ test textDisp-4.17 {UpdateDisplayInfo, horizontal scrolling} {fonts} { update list $tk_textRelayout $tk_textRedraw [.t bbox 2.0] [.t bbox 2.5] \ [.t bbox 2.23] -} {{} {1.0 2.0 3.0 4.0} {} {17 16 7 13} {}} -test textDisp-4.18 {UpdateDisplayInfo, horizontal scrolling} {fonts} { +} [list {} {1.0 2.0 3.0 4.0} {} [list 17 [expr {$fixedDiff + 16}] 7 $fixedHeight] {}] +test textDisp-4.18 {UpdateDisplayInfo, horizontal scrolling} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally" @@ -619,8 +679,8 @@ test textDisp-4.18 {UpdateDisplayInfo, horizontal scrolling} {fonts} { .t xview scroll 100 units update list $tk_textRelayout $tk_textRedraw [.t bbox 2.25] -} {{} {1.0 2.0 3.0 4.0} {10 16 7 13}} -test textDisp-4.19 {UpdateDisplayInfo, horizontal scrolling} {fonts} { +} [list {} {1.0 2.0 3.0 4.0} [list 10 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-4.19 {UpdateDisplayInfo, horizontal scrolling} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally" @@ -630,8 +690,8 @@ test textDisp-4.19 {UpdateDisplayInfo, horizontal scrolling} {fonts} { .t xview scroll -10 units update list $tk_textRelayout $tk_textRedraw [.t bbox 2.5] -} {{} {1.0 2.0 3.0 4.0} {38 16 7 13}} -test textDisp-4.20 {UpdateDisplayInfo, horizontal scrolling} {fonts} { +} [list {} {1.0 2.0 3.0 4.0} [list 38 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-4.20 {UpdateDisplayInfo, horizontal scrolling} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally" @@ -642,8 +702,8 @@ test textDisp-4.20 {UpdateDisplayInfo, horizontal scrolling} {fonts} { .t delete 2.30 2.44 update list $tk_textRelayout $tk_textRedraw [.t bbox 2.25] -} {2.0 {1.0 2.0 3.0 4.0} {108 16 7 13}} -test textDisp-4.21 {UpdateDisplayInfo, horizontal scrolling} {fonts} { +} [list 2.0 {1.0 2.0 3.0 4.0} [list 108 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-4.21 {UpdateDisplayInfo, horizontal scrolling} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally" @@ -654,7 +714,7 @@ test textDisp-4.21 {UpdateDisplayInfo, horizontal scrolling} {fonts} { update list $tk_textRelayout $tk_textRedraw } {{} {}} -test textDisp-4.22 {UpdateDisplayInfo, no horizontal scrolling except for -wrap none} {fonts} { +test textDisp-4.22 {UpdateDisplayInfo, no horizontal scrolling except for -wrap none} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally" @@ -663,8 +723,8 @@ test textDisp-4.22 {UpdateDisplayInfo, no horizontal scrolling except for -wrap update .t configure -wrap word list [.t bbox 2.0] [.t bbox 2.16] -} {{3 16 7 13} {10 29 7 13}} -test textDisp-4.23 {UpdateDisplayInfo, no horizontal scrolling except for -wrap none} {fonts} { +} [list [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight] [list 10 [expr {2*$fixedDiff + 29}] 7 $fixedHeight]] +test textDisp-4.23 {UpdateDisplayInfo, no horizontal scrolling except for -wrap none} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally" @@ -673,9 +733,8 @@ test textDisp-4.23 {UpdateDisplayInfo, no horizontal scrolling except for -wrap update .t configure -wrap char list [.t bbox 2.0] [.t bbox 2.16] -} {{3 16 7 13} {115 16 7 13}} - -test textDisp-5.1 {DisplayDLine, handling of spacing} {fonts} { +} [list [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight] [list 115 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-5.1 {DisplayDLine, handling of spacing} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcdefghijkl\nmnopqrstuvwzyz" @@ -692,7 +751,7 @@ test textDisp-5.1 {DisplayDLine, handling of spacing} {fonts} { update list [winfo geometry .t.f1] [winfo geometry .t.f2] \ [winfo geometry .t.f3] [winfo geometry .t.f4] -} {10x4+24+11 10x4+55+15 10x4+10+43 10x4+76+40} +} [list 10x4+24+11 10x4+55+[expr {$fixedDiff/2 + 15}] 10x4+10+[expr {2*$fixedDiff + 43}] 10x4+76+[expr {2*$fixedDiff + 40}]] .t tag delete spacing # Although the following test produces a useful result, its main @@ -706,7 +765,7 @@ test textDisp-5.2 {DisplayDLine, line resizes during display} { .t window create insert -window .t.f update list [winfo width .t.f] [winfo height .t.f] -} {30 30} +} [list 30 30] .t configure -wrap char test textDisp-6.1 {scrolling in DisplayText, scroll up} { @@ -904,7 +963,7 @@ test textDisp-7.8 {TkTextRedrawRegion} {nonPortable} { } {{} {borders 4.0 5.0 6.0 7.0 eof}} .t configure -bd 0 -test textDisp-8.1 {TkTextChanged: redisplay whole lines} {fonts} { +test textDisp-8.1 {TkTextChanged: redisplay whole lines} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "Line 1\nLine 2 is so long that it wraps around, two times" @@ -915,7 +974,7 @@ test textDisp-8.1 {TkTextChanged: redisplay whole lines} {fonts} { .t delete 2.36 2.38 update list $tk_textRelayout $tk_textRedraw [.t bbox 2.32] -} {{2.0 2.18 2.38} {2.0 2.18 2.38} {101 29 7 13}} +} [list {2.0 2.18 2.38} {2.0 2.18 2.38} [list 101 [expr {2*$fixedDiff + 29}] 7 $fixedHeight]] .t configure -wrap char test textDisp-8.2 {TkTextChanged, redisplay whole lines} { .t delete 1.0 end @@ -1038,7 +1097,7 @@ test textDisp-9.1 {TkTextRedrawTag} { update list $tk_textRelayout $tk_textRedraw } {{2.0 2.18} {2.0 2.18}} -test textDisp-9.2 {TkTextRedrawTag} {fonts} { +test textDisp-9.2 {TkTextRedrawTag} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "Line 1\nLine 2 is long enough to wrap around\nLine 3\nLine 4" @@ -1097,7 +1156,7 @@ test textDisp-9.7 {TkTextRedrawTag} { update set tk_textRedraw } {2.0 2.20 eof} -test textDisp-9.8 {TkTextRedrawTag} {fonts} { +test textDisp-9.8 {TkTextRedrawTag} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "Line 1\nLine 2 is long enough to wrap\nLine 3 is also long enough to wrap\nLine 4" @@ -1107,7 +1166,7 @@ test textDisp-9.8 {TkTextRedrawTag} {fonts} { update set tk_textRedraw } {2.0 2.17} -test textDisp-9.9 {TkTextRedrawTag} {fonts} { +test textDisp-9.9 {TkTextRedrawTag} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "Line 1\nLine 2 is long enough to wrap\nLine 3 is also long enough to wrap\nLine 4" @@ -1149,6 +1208,7 @@ test textDisp-10.1 {TkTextRelayoutWindow} { list $tk_textRelayout $tk_textRedraw } {{1.0 2.0 2.20 3.0 3.20 4.0} {borders 1.0 2.0 2.20 3.0 3.20 4.0 eof}} .t configure -bg [lindex [.t configure -bg] 3] +catch {destroy .top} test textDisp-10.2 {TkTextRelayoutWindow} { toplevel .top -width 300 -height 200 wm geometry .top +0+0 @@ -1403,7 +1463,7 @@ test textDisp-13.6 {TkTextSeeCmd procedure} { .t configure -wrap none set x } {27.0} -test textDisp-13.7 {TkTextSeeCmd procedure} {fonts} { +test textDisp-13.7 {TkTextSeeCmd procedure} {textfonts} { .t xview moveto 0 .t yview moveto 0 .t tag add sel 30.20 @@ -1417,8 +1477,8 @@ test textDisp-13.7 {TkTextSeeCmd procedure} {fonts} { lappend x [.t bbox 30.38] .t see 30.20 lappend x [.t bbox 30.20] -} {{73 55 7 13} {3 55 7 13} {3 55 7 13} {73 55 7 13}} -test textDisp-13.8 {TkTextSeeCmd procedure} {fonts} { +} [list [list 73 [expr {9*$fixedDiff + 55}] 7 $fixedHeight] [list 3 [expr {9*$fixedDiff + 55}] 7 $fixedHeight] [list 3 [expr {9*$fixedDiff + 55}] 7 $fixedHeight] [list 73 [expr {9*$fixedDiff + 55}] 7 $fixedHeight]] +test textDisp-13.8 {TkTextSeeCmd procedure} {textfonts} { .t xview moveto 0 .t yview moveto 0 .t tag add sel 30.20 @@ -1432,8 +1492,8 @@ test textDisp-13.8 {TkTextSeeCmd procedure} {fonts} { lappend x [.t bbox 30.65] .t see 30.90 lappend x [.t bbox 30.90] -} {{73 55 7 13} {136 55 7 13} {136 55 7 13} {73 55 7 13}} -test textDisp-13.9 {TkTextSeeCmd procedure} {fonts} { +} [list [list 73 [expr {9*$fixedDiff + 55}] 7 $fixedHeight] [list 136 [expr {9*$fixedDiff + 55}] 7 $fixedHeight] [list 136 [expr {9*$fixedDiff + 55}] 7 $fixedHeight] [list 73 [expr {9*$fixedDiff + 55}] 7 $fixedHeight]] +test textDisp-13.9 {TkTextSeeCmd procedure} {textfonts} { wm geom . [expr $width-2]x$height .t xview moveto 0 .t yview moveto 0 @@ -1448,7 +1508,7 @@ test textDisp-13.9 {TkTextSeeCmd procedure} {fonts} { lappend x [.t bbox 30.65] .t see 30.90 lappend x [.t bbox 30.90] -} {{80 55 7 13} {136 55 7 13} {136 55 7 13} {80 55 7 13}} +} [list [list 80 [expr {10*$fixedDiff + 55}] 7 $fixedHeight] [list 136 [expr {10*$fixedDiff + 55}] 7 $fixedHeight] [list 136 [expr {10*$fixedDiff + 55}] 7 $fixedHeight] [list 80 [expr {10*$fixedDiff + 55}] 7 $fixedHeight]] test textDisp-13.10 {TkTextSeeCmd procedure} {} { # SF Bug 641778 set w .tsee @@ -1694,7 +1754,7 @@ test textDisp-16.17 {TkTextYviewCmd procedure, "moveto" option} { .t yview moveto .755 .t index @0,0 } {151.80} -test textDisp-16.18 {TkTextYviewCmd procedure, "moveto" roundoff} {fonts} { +test textDisp-16.18 {TkTextYviewCmd procedure, "moveto" roundoff} {textfonts} { catch {destroy .top1} toplevel .top1 wm geometry .top1 +0+0 @@ -1764,7 +1824,7 @@ test textDisp-16.27 {TkTextYviewCmd procedure, "scroll" option, forward pages} { .t yview scroll 2 pages .t index @0,0 } {66.0} -test textDisp-16.28 {TkTextYviewCmd procedure, "scroll" option, forward pages} {fonts} { +test textDisp-16.28 {TkTextYviewCmd procedure, "scroll" option, forward pages} {textfonts} { .t yview 98.0 update .t yview scroll 1 page @@ -1876,14 +1936,14 @@ test textDisp-17.4 {TkTextScanCmd procedure} { test textDisp-17.5 {TkTextScanCmd procedure} { list [catch {.t scan stupid 123 456} msg] $msg } {1 {bad scan option "stupid": must be mark or dragto}} -test textDisp-17.6 {TkTextScanCmd procedure} {fonts} { +test textDisp-17.6 {TkTextScanCmd procedure} {textfonts} { .t yview 1.0 .t xview moveto 0 .t scan mark 40 60 .t scan dragto 35 55 .t index @0,0 } {4.7} -test textDisp-17.7 {TkTextScanCmd procedure} {fonts} { +test textDisp-17.7 {TkTextScanCmd procedure} {textfonts} { .t yview 10.0 .t xview moveto 0 .t xview scroll 20 units @@ -1893,8 +1953,8 @@ test textDisp-17.7 {TkTextScanCmd procedure} {fonts} { set x [.t index @0,0] .t scan dragto 0 70 list $x [.t index @0,0] -} {7.13 3.6} -test textDisp-17.8 {TkTextScanCmd procedure} {fonts} { +} {6.13 3.6} +test textDisp-17.8 {TkTextScanCmd procedure} {textfonts} { .t yview 1.0 .t xview moveto 0 .t scan mark 0 60 @@ -1902,7 +1962,7 @@ test textDisp-17.8 {TkTextScanCmd procedure} {fonts} { .t scan dragto 25 95 .t index @0,0 } {4.7} -test textDisp-17.9 {TkTextScanCmd procedure} {fonts} { +test textDisp-17.9 {TkTextScanCmd procedure} {textfonts} { .t yview end .t xview moveto 0 .t xview scroll 100 units @@ -1912,14 +1972,14 @@ test textDisp-17.9 {TkTextScanCmd procedure} {fonts} { .t index @0,0 } {18.44} .t configure -wrap word -test textDisp-17.10 {TkTextScanCmd procedure, word wrapping} {fonts} { +test textDisp-17.10 {TkTextScanCmd procedure, word wrapping} {textfonts} { .t yview 10.0 .t scan mark -10 60 .t scan dragto -5 65 set x [.t index @0,0] .t scan dragto 0 70 list $x [.t index @0,0] -} {9.31 8.47} +} {9.15 8.47} .t configure -xscrollcommand scroll -yscrollcommand {} test textDisp-18.1 {GetXView procedure} { @@ -2305,19 +2365,20 @@ test textDisp-19.12 {GetYView procedure, partially visible last line} { update .top.t yview } {0.0 0.9625} -test textDisp-19.13 {GetYView procedure, partially visible last line} {fonts} { +test textDisp-19.13 {GetYView procedure, partially visible last line} {textfonts} { catch {destroy .top} toplevel .top wm geometry .top +0+0 text .top.t -width 40 -height 5 pack .top.t -expand yes -fill both .top.t insert end "Line 1\nLine 2\nLine 3\nLine 4 has enough text to wrap around at least once" - update + # Need to wait for asychronous calculations to complete. + update ; after 10 scan [wm geom .top] %dx%d twidth theight wm geom .top ${twidth}x[expr $theight - 3] update .top.t yview -} {0 0.942308} +} {0.0 0.9625} catch {destroy .top} test textDisp-19.14 {GetYView procedure} { .t configure -wrap word @@ -2395,46 +2456,46 @@ for {set i 2} {$i <= 200} {incr i} { .t configure -wrap word .t delete 50.0 51.0 .t insert 50.0 "This is a long line, one that will wrap around twice.\n" -test textDisp-20.1 {FindDLine} {fonts} { +test textDisp-20.1 {FindDLine} {textfonts} { .t yview 48.0 list [.t dlineinfo 46.0] [.t dlineinfo 47.0] [.t dlineinfo 49.0] \ [.t dlineinfo 58.0] -} {{} {} {3 16 49 13 10} {}} -test textDisp-20.2 {FindDLine} {fonts} { +} [list {} {} [list 3 [expr {$fixedDiff + 16}] 49 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] {}] +test textDisp-20.2 {FindDLine} {unixOnly textfonts} { .t yview 100.0 .t yview -pickplace 53.0 list [.t dlineinfo 50.0] [.t dlineinfo 50.14] [.t dlineinfo 50.15] -} {{} {} {3 3 140 13 10}} -test textDisp-20.3 {FindDLine} {fonts} { +} [list {} {} [list 3 3 140 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]]] +test textDisp-20.3 {FindDLine} {textfonts} { .t yview 100.0 .t yview 49.0 list [.t dlineinfo 50.0] [.t dlineinfo 50.20] [.t dlineinfo 57.0] -} {{3 16 105 13 10} {3 29 140 13 10} {}} -test textDisp-20.4 {FindDLine} {fonts} { +} [list [list 3 [expr {$fixedDiff + 16}] 105 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {2*$fixedDiff + 29}] 140 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] {}] +test textDisp-20.4 {FindDLine} {textfonts} { .t yview 100.0 .t yview 42.0 list [.t dlineinfo 50.0] [.t dlineinfo 50.20] [.t dlineinfo 50.40] -} {{3 107 105 13 10} {3 120 140 13 10} {}} +} [list [list 3 [expr {8*$fixedDiff + 107}] 105 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {9*$fixedDiff + 120}] 140 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] {}] .t config -wrap none -test textDisp-20.5 {FindDLine} {fonts} { +test textDisp-20.5 {FindDLine} {textfonts} { .t yview 100.0 .t yview 48.0 list [.t dlineinfo 50.0] [.t dlineinfo 50.20] [.t dlineinfo 50.40] -} {{3 29 371 13 10} {3 29 371 13 10} {3 29 371 13 10}} +} [list [list 3 [expr {3+2*$fixedHeight}] 371 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {3+2*$fixedHeight}] 371 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {3+2*$fixedHeight}] 371 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]]] .t config -wrap word -test textDisp-21.1 {TkTextPixelIndex} {fonts} { +test textDisp-21.1 {TkTextPixelIndex} {textfonts} { .t yview 48.0 list [.t index @-10,-10] [.t index @6,6] [.t index @22,6] \ - [.t index @102,6] [.t index @38,55] [.t index @44,67] + [.t index @102,6] [.t index @38,[expr {$fixedHeight * 4 + 3}]] [.t index @44,67] } {48.0 48.0 48.2 48.7 50.40 50.40} .t insert end \n -test textDisp-21.2 {TkTextPixelIndex} {fonts} { +test textDisp-21.2 {TkTextPixelIndex} {textfonts} { .t yview 195.0 - list [.t index @11,70] [.t index @11,84] [.t index @11,102] \ + list [.t index @11,[expr {$fixedHeight * 5 + 5}]] [.t index @11,[expr {$fixedHeight * 6 + 5}]] [.t index @11,[expr {$fixedHeight * 7 + 5}]] \ [.t index @11,1002] } {197.1 198.1 199.1 201.0} -test textDisp-21.3 {TkTextPixelIndex, horizontal scrolling} {fonts} { +test textDisp-21.3 {TkTextPixelIndex, horizontal scrolling} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "12345\n" @@ -2453,57 +2514,57 @@ for {set i 2} {$i <= 200} {incr i} { .t insert 50.0 "This is a long line, one that will wrap around twice.\n" update .t tag add x 50.1 -test textDisp-22.1 {TkTextCharBbox} {fonts} { +test textDisp-22.1 {TkTextCharBbox} {textfonts} { .t config -wrap word .t yview 48.0 list [.t bbox 47.2] [.t bbox 48.0] [.t bbox 50.5] [.t bbox 50.40] \ [.t bbox 58.0] -} {{} {3 3 7 13} {38 29 7 13} {38 55 7 13} {}} -test textDisp-22.2 {TkTextCharBbox} {fonts} { +} [list {} [list 3 3 7 $fixedHeight] [list 38 [expr {3+2*$fixedHeight}] 7 $fixedHeight] [list 38 [expr {3+4*$fixedHeight}] 7 $fixedHeight] {}] +test textDisp-22.2 {TkTextCharBbox} {textfonts} { .t config -wrap none .t yview 48.0 list [.t bbox 50.5] [.t bbox 50.40] [.t bbox 57.0] -} {{38 29 7 13} {} {3 120 7 13}} -test textDisp-22.3 {TkTextCharBbox, cut-off lines} {fonts} { +} [list [list 38 [expr {3+2*$fixedHeight}] 7 $fixedHeight] {} [list 3 [expr {3+9*$fixedHeight}] 7 $fixedHeight]] +test textDisp-22.3 {TkTextCharBbox, cut-off lines} {textfonts} { .t config -wrap char .t yview 10.0 wm geom . ${width}x[expr $height-1] update list [.t bbox 19.1] [.t bbox 20.1] -} {{10 120 7 13} {10 133 7 3}} -test textDisp-22.4 {TkTextCharBbox, cut-off lines} {fonts} { +} [list [list 10 [expr {3+9*$fixedHeight}] 7 $fixedHeight] [list 10 [expr {3+10*$fixedHeight}] 7 3]] +test textDisp-22.4 {TkTextCharBbox, cut-off lines} {textfonts} { .t config -wrap char .t yview 10.0 wm geom . ${width}x[expr $height+1] update list [.t bbox 19.1] [.t bbox 20.1] -} {{10 120 7 13} {10 133 7 5}} -test textDisp-22.5 {TkTextCharBbox, cut-off char} {fonts} { +} [list [list 10 [expr {3+9*$fixedHeight}] 7 $fixedHeight] [list 10 [expr {3+10*$fixedHeight}] 7 5]] +test textDisp-22.5 {TkTextCharBbox, cut-off char} {textfonts} { .t config -wrap none .t yview 10.0 wm geom . [expr $width-95]x$height update .t bbox 15.6 -} {45 68 7 13} -test textDisp-22.6 {TkTextCharBbox, line visible but not char} {fonts} { +} [list 45 [expr {3+5*$fixedHeight}] 7 $fixedHeight] +test textDisp-22.6 {TkTextCharBbox, line visible but not char} {textfonts} { .t config -wrap char .t yview 10.0 .t tag add big 20.2 20.5 wm geom . ${width}x[expr $height+3] update list [.t bbox 19.1] [.t bbox 20.1] [.t bbox 20.2] -} {{10 120 7 13} {} {17 133 14 7}} +} [list [list 10 [expr {3+9*$fixedHeight}] 7 $fixedHeight] {} [list 17 [expr {3+10*$fixedHeight}] 14 7]] wm geom . {} update -test textDisp-22.7 {TkTextCharBbox, different character sizes} {fonts} { +test textDisp-22.7 {TkTextCharBbox, different character sizes} {textfonts} { .t config -wrap char .t yview 10.0 .t tag add big 12.2 12.5 update list [.t bbox 12.1] [.t bbox 12.2] -} {{10 41 7 13} {17 29 14 27}} +} [list [list 10 [expr {3 + 2*$fixedHeight + $ascentDiff}] 7 $fixedHeight] [list 17 [expr {3+ 2*$fixedHeight}] 14 27]] .t tag remove big 1.0 end -test textDisp-22.8 {TkTextCharBbox, horizontal scrolling} {fonts} { +test textDisp-22.8 {TkTextCharBbox, horizontal scrolling} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert end "12345\n" @@ -2511,8 +2572,8 @@ test textDisp-22.8 {TkTextCharBbox, horizontal scrolling} {fonts} { .t xview scroll 4 units list [.t bbox 1.3] [.t bbox 1.4] [.t bbox 2.3] [.t bbox 2.4] \ [.t bbox 2.23] [.t bbox 2.24] -} {{} {3 3 7 13} {} {3 16 7 13} {136 16 7 13} {}} -test textDisp-22.9 {TkTextCharBbox, handling of spacing} {fonts} { +} [list {} [list 3 3 7 $fixedHeight] {} [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight] [list 136 [expr {$fixedDiff + 16}] 7 $fixedHeight] {}] +test textDisp-22.9 {TkTextCharBbox, handling of spacing} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcdefghijkl\nmnopqrstuvwzyz" @@ -2529,7 +2590,7 @@ test textDisp-22.9 {TkTextCharBbox, handling of spacing} {fonts} { update list [.t bbox .t.f1] [.t bbox .t.f2] [.t bbox .t.f3] [.t bbox .t.f4] \ [.t bbox 1.1] [.t bbox 2.9] -} {{24 11 10 4} {55 15 10 4} {10 43 10 4} {76 40 10 4} {10 11 7 13} {69 34 7 13}} +} [list [list 24 11 10 4] [list 55 [expr {$fixedDiff/2 + 15}] 10 4] [list 10 [expr {2*$fixedDiff + 43}] 10 4] [list 76 [expr {2*$fixedDiff + 40}] 10 4] [list 10 11 7 $fixedHeight] [list 69 [expr {$fixedDiff + 34}] 7 $fixedHeight]] .t tag delete spacing .t delete 1.0 end @@ -2541,42 +2602,42 @@ for {set i 2} {$i <= 200} {incr i} { .t delete 50.0 51.0 .t insert 50.0 "This is a long line, one that will wrap around twice.\n" update -test textDisp-23.1 {TkTextDLineInfo} {fonts} { +test textDisp-23.1 {TkTextDLineInfo} {textfonts} { .t config -wrap word .t yview 48.0 list [.t dlineinfo 47.3] [.t dlineinfo 48.0] [.t dlineinfo 50.40] \ [.t dlineinfo 56.0] -} {{} {3 3 49 13 10} {3 55 126 13 10} {}} -test textDisp-23.2 {TkTextDLineInfo} {fonts} { +} [list {} [list 3 3 49 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {4*$fixedDiff + 55}] 126 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] {}] +test textDisp-23.2 {TkTextDLineInfo} {textfonts} { .t config -bd 4 -wrap word update .t yview 48.0 .t dlineinfo 50.40 -} {7 59 126 13 10} +} [list 7 [expr {4*$fixedDiff + 59}] 126 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] .t config -bd 0 -test textDisp-23.3 {TkTextDLineInfo} {fonts} { +test textDisp-23.3 {TkTextDLineInfo} {textfonts} { .t config -wrap none update .t yview 48.0 list [.t dlineinfo 50.40] [.t dlineinfo 57.3] -} {{3 29 371 13 10} {3 120 49 13 10}} -test textDisp-23.4 {TkTextDLineInfo, cut-off lines} {fonts} { +} [list [list 3 [expr {2*$fixedDiff + 29}] 371 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {9*$fixedDiff + 120}] 49 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]]] +test textDisp-23.4 {TkTextDLineInfo, cut-off lines} {textfonts} { .t config -wrap char .t yview 10.0 wm geom . ${width}x[expr $height-1] update list [.t dlineinfo 19.0] [.t dlineinfo 20.0] -} {{3 120 49 13 10} {3 133 49 3 10}} -test textDisp-23.5 {TkTextDLineInfo, cut-off lines} {fonts} { +} [list [list 3 [expr {9*$fixedDiff + 120}] 49 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {10*$fixedDiff + 133}] 49 3 [expr {$fixedDiff + 10}]]] +test textDisp-23.5 {TkTextDLineInfo, cut-off lines} {textfonts} { .t config -wrap char .t yview 10.0 wm geom . ${width}x[expr $height+1] update list [.t dlineinfo 19.0] [.t dlineinfo 20.0] -} {{3 120 49 13 10} {3 133 49 5 10}} +} [list [list 3 [expr {9*$fixedDiff + 120}] 49 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {10*$fixedDiff + 133}] 49 5 [expr {$fixedDiff + 10}]]] wm geom . {} update -test textDisp-23.6 {TkTextDLineInfo, horizontal scrolling} {fonts} { +test textDisp-23.6 {TkTextDLineInfo, horizontal scrolling} {textfonts} { .t config -wrap none .t delete 1.0 end .t insert end "First line\n" @@ -2585,9 +2646,9 @@ test textDisp-23.6 {TkTextDLineInfo, horizontal scrolling} {fonts} { .t xview scroll 6 units update list [.t dlineinfo 1.0] [.t dlineinfo 2.0] [.t dlineinfo 3.0] -} {{-39 3 70 13 10} {-39 16 364 13 10} {-39 29 35 13 10}} +} [list [list -39 3 70 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list -39 [expr {$fixedDiff + 16}] 364 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list -39 [expr {2*$fixedDiff + 29}] 35 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]]] .t xview moveto 0 -test textDisp-23.7 {TkTextDLineInfo, centering} {fonts} { +test textDisp-23.7 {TkTextDLineInfo, centering} {textfonts} { .t config -wrap word .t delete 1.0 end .t insert end "First line\n" @@ -2598,88 +2659,88 @@ test textDisp-23.7 {TkTextDLineInfo, centering} {fonts} { .t tag add x 1.0 .t tag add y 3.0 list [.t dlineinfo 1.0] [.t dlineinfo 2.0] [.t dlineinfo 3.0] -} {{38 3 70 13 10} {3 16 119 13 10} {108 55 35 13 10}} +} [list [list 38 3 70 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 3 [expr {$fixedDiff + 16}] 119 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 108 [expr {4*$fixedDiff + 55}] 35 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]]] .t tag delete x y -test textDisp-24.1 {TkTextCharLayoutProc} {fonts} { +test textDisp-24.1 {TkTextCharLayoutProc} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcdefghijklmnopqrstuvwxyz" list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 7 13} {3 16 7 13}} -test textDisp-24.2 {TkTextCharLayoutProc} {fonts} { +} [list [list 136 3 7 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.2 {TkTextCharLayoutProc} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcdefghijklmnopqrstuvwxyz" wm geom . [expr $width+1]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 12 13} {3 16 7 13}} -test textDisp-24.3 {TkTextCharLayoutProc} {fonts} { +} [list [list 136 3 12 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.3 {TkTextCharLayoutProc} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcdefghijklmnopqrstuvwxyz" wm geom . [expr $width-1]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 10 13} {3 16 7 13}} -test textDisp-24.4 {TkTextCharLayoutProc, newline not visible} {fonts} { +} [list [list 136 3 10 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.4 {TkTextCharLayoutProc, newline not visible} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 01234567890123456789\n012345678901234567890 wm geom . {} update list [.t bbox 1.19] [.t bbox 1.20] [.t bbox 2.20] -} {{136 3 7 13} {143 3 0 13} {3 29 7 13}} -test textDisp-24.5 {TkTextCharLayoutProc, char doesn't fit, newline not visible} {fonts} { +} [list [list 136 3 7 $fixedHeight] [list 143 3 0 $fixedHeight] [list 3 [expr {2*$fixedDiff + 29}] 7 $fixedHeight]] +test textDisp-24.5 {TkTextCharLayoutProc, char doesn't fit, newline not visible} {unixOnly textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 0\n1\n wm geom . 110x$height update list [.t bbox 1.0] [.t bbox 1.1] [.t bbox 2.0] -} {{3 3 4 13} {7 3 0 13} {3 16 4 13}} -test textDisp-24.6 {TkTextCharLayoutProc, line ends with space} {fonts} { +} [list [list 3 3 4 $fixedHeight] [list 7 3 0 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 4 $fixedHeight]] +test textDisp-24.6 {TkTextCharLayoutProc, line ends with space} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "a b c d e f g h i j k l m n o p" wm geom . {} update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 7 13} {3 16 7 13}} -test textDisp-24.7 {TkTextCharLayoutProc, line ends with space} {fonts} { +} [list [list 136 3 7 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.7 {TkTextCharLayoutProc, line ends with space} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "a b c d e f g h i j k l m n o p" wm geom . [expr $width+1]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 12 13} {3 16 7 13}} -test textDisp-24.8 {TkTextCharLayoutProc, line ends with space} {fonts} { +} [list [list 136 3 12 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.8 {TkTextCharLayoutProc, line ends with space} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "a b c d e f g h i j k l m n o p" wm geom . [expr $width-1]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 10 13} {3 16 7 13}} -test textDisp-24.9 {TkTextCharLayoutProc, line ends with space} {fonts} { +} [list [list 136 3 10 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.9 {TkTextCharLayoutProc, line ends with space} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "a b c d e f g h i j k l m n o p" wm geom . [expr $width-6]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 5 13} {3 16 7 13}} -test textDisp-24.10 {TkTextCharLayoutProc, line ends with space} {fonts} { +} [list [list 136 3 5 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.10 {TkTextCharLayoutProc, line ends with space} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "a b c d e f g h i j k l m n o p" wm geom . [expr $width-7]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 4 13} {3 16 7 13}} -test textDisp-24.11 {TkTextCharLayoutProc, line ends with space that doesn't quite fit} {fonts} { +} [list [list 136 3 4 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.11 {TkTextCharLayoutProc, line ends with space that doesn't quite fit} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "01234567890123456789 \nabcdefg" @@ -2689,72 +2750,75 @@ test textDisp-24.11 {TkTextCharLayoutProc, line ends with space that doesn't qui lappend result [.t bbox 1.21] [.t bbox 2.0] .t mark set insert 1.21 lappend result [.t bbox 1.21] [.t bbox 2.0] -} {{145 3 0 13} {3 16 7 13} {145 3 0 13} {3 16 7 13}} -test textDisp-24.12 {TkTextCharLayoutProc, tab causes wrap} {fonts} { +} [list [list 145 3 0 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight] [list 145 3 0 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.12 {TkTextCharLayoutProc, tab causes wrap} {textfonts} { .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcdefghi" .t mark set insert 1.4 .t insert insert \t\t\t list [.t bbox {insert -1c}] [.t bbox insert] -} {{115 3 30 13} {3 16 7 13}} -test textDisp-24.13 {TkTextCharLayoutProc, -wrap none} {fonts} { +} [list [list 115 3 30 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.13 {TkTextCharLayoutProc, -wrap none} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert 1.0 "abcdefghijklmnopqrstuvwxyz" wm geom . {} update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 7 13} {}} -test textDisp-24.14 {TkTextCharLayoutProc, -wrap none} {fonts} { +} [list [list 136 3 7 $fixedHeight] {}] +test textDisp-24.14 {TkTextCharLayoutProc, -wrap none} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert 1.0 "abcdefghijklmnopqrstuvwxyz" wm geom . [expr $width+1]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 7 13} {143 3 5 13}} -test textDisp-24.15 {TkTextCharLayoutProc, -wrap none} {fonts} { +} [list [list 136 3 7 $fixedHeight] [list 143 3 5 $fixedHeight]] +test textDisp-24.15 {TkTextCharLayoutProc, -wrap none} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert 1.0 "abcdefghijklmnopqrstuvwxyz" wm geom . [expr $width-1]x$height update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 7 13} {143 3 3 13}} -test textDisp-24.16 {TkTextCharLayoutProc, no chars fit} {fonts} { +} [list [list 136 3 7 $fixedHeight] [list 143 3 3 $fixedHeight]] +test textDisp-24.16 {TkTextCharLayoutProc, no chars fit} {textfonts} { + if {$tcl_platform(platform) == "windows"} { + wm overrideredirect . 1 + } .t configure -wrap char .t delete 1.0 end .t insert 1.0 "abcdefghijklmnopqrstuvwxyz" wm geom . 103x$height update list [.t bbox 1.0] [.t bbox 1.1] [.t bbox 1.2] -} {{3 3 1 13} {3 16 1 13} {3 29 1 13}} -test textDisp-24.17 {TkTextCharLayoutProc, -wrap word} {fonts} { +} [list [list 3 3 1 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 1 $fixedHeight] [list 3 [expr {2*$fixedDiff + 29}] 1 $fixedHeight]] +test textDisp-24.17 {TkTextCharLayoutProc, -wrap word} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "This is a line that wraps around" wm geom . {} update list [.t bbox 1.19] [.t bbox 1.20] -} {{136 3 7 13} {3 16 7 13}} -test textDisp-24.18 {TkTextCharLayoutProc, -wrap word} {fonts} { +} [list [list 136 3 7 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.18 {TkTextCharLayoutProc, -wrap word} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "xThis is a line that wraps around" wm geom . {} update list [.t bbox 1.14] [.t bbox 1.15] [.t bbox 1.16] -} {{101 3 7 13} {108 3 35 13} {3 16 7 13}} -test textDisp-24.19 {TkTextCharLayoutProc, -wrap word} {fonts} { +} [list [list 101 3 7 $fixedHeight] [list 108 3 35 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 7 $fixedHeight]] +test textDisp-24.19 {TkTextCharLayoutProc, -wrap word} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "xxThis is a line that wraps around" wm geom . {} update list [.t bbox 1.14] [.t bbox 1.15] [.t bbox 1.16] -} {{101 3 7 13} {108 3 7 13} {115 3 28 13}} -test textDisp-24.20 {TkTextCharLayoutProc, vertical offset} {fonts} { +} [list [list 101 3 7 $fixedHeight] [list 108 3 7 $fixedHeight] [list 115 3 28 $fixedHeight]] +test textDisp-24.20 {TkTextCharLayoutProc, vertical offset} {textfonts} { .t configure -wrap none .t delete 1.0 end .t insert 1.0 "Line 1\nLine 2\nLine 3" @@ -2767,18 +2831,18 @@ test textDisp-24.20 {TkTextCharLayoutProc, vertical offset} {fonts} { lappend result [.t bbox 2.1] [.t dlineinfo 2.1] .t tag delete up set result -} {{10 16 7 13} {3 16 42 13 10} {10 16 7 13} {3 16 42 19 16} {10 18 7 13} {3 16 42 15 10}} +} [list [list 10 [expr {$fixedDiff + 16}] 7 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 42 [expr {$fixedDiff + 13}] [expr {$fixedDiff + 10}]] [list 10 [expr {$fixedDiff + 16}] 7 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 42 [expr {$fixedDiff + 19}] [expr {$fixedDiff + 16}]] [list 10 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 3 [expr {$fixedDiff + 16}] 42 [expr {$fixedDiff + 15}] [expr {$fixedDiff + 10}]]] .t configure -width 30 update -test textDisp-24.21 {TkTextCharLayoutProc, word breaks} {fonts} { +test textDisp-24.21 {TkTextCharLayoutProc, word breaks} {textfonts} { .t configure -wrap word .t delete 1.0 end .t insert 1.0 "Sample text xxxxxxx yyyyy zzzzzzz qqqqq rrrr ssss tt u vvvvv" frame .t.f -width 30 -height 20 -bg black .t window create 1.36 -window .t.f .t bbox 1.26 -} {3 19 7 13} -test textDisp-24.22 {TkTextCharLayoutProc, word breaks} {fonts} { +} [list 3 [expr {$fixedDiff/2 + 19}] 7 $fixedHeight] +test textDisp-24.22 {TkTextCharLayoutProc, word breaks} {textfonts} { .t configure -wrap word .t delete 1.0 end frame .t.f -width 30 -height 20 -bg black @@ -2786,8 +2850,8 @@ test textDisp-24.22 {TkTextCharLayoutProc, word breaks} {fonts} { .t window create end -window .t.f .t insert end "zzzzzzz qqqqq rrrr ssss tt u vvvvv" .t bbox 1.28 -} {33 19 7 13} -test textDisp-24.23 {TkTextCharLayoutProc, word breaks} {fonts} { +} [list 33 [expr {$fixedDiff/2 + 19}] 7 $fixedHeight] +test textDisp-24.23 {TkTextCharLayoutProc, word breaks} {textfonts} { .t configure -wrap word .t delete 1.0 end frame .t.f -width 30 -height 20 -bg black @@ -2796,36 +2860,36 @@ test textDisp-24.23 {TkTextCharLayoutProc, word breaks} {fonts} { .t window create end -window .t.f .t insert end "u vvvvv" .t bbox .t.f -} {3 29 30 20} +} [list 3 [expr {2*$fixedDiff + 29}] 30 20] catch {destroy .t.f} .t configure -width 20 update -test textDisp-24.24 {TkTextCharLayoutProc, justification and tabs} {fonts} { +test textDisp-24.24 {TkTextCharLayoutProc, justification and tabs} {textfonts} { .t delete 1.0 end .t tag configure x -justify center .t insert 1.0 aa\tbb\tcc\tdd\t .t tag add x 1.0 end list [.t bbox 1.0] [.t bbox 1.10] -} {{45 3 7 13} {94 3 7 13}} +} [list [list 45 3 7 $fixedHeight] [list 94 3 7 $fixedHeight]] .t configure -width 40 -bd 0 -relief flat -highlightthickness 0 -padx 0 \ -tabs 100 update -test textDisp-25.1 {CharBboxProc procedure, check tab width} {fonts} { +test textDisp-25.1 {CharBboxProc procedure, check tab width} {textfonts} { .t delete 1.0 end .t insert 1.0 abc\td\tfgh list [.t bbox 1.3] [.t bbox 1.5] [.t bbox 1.6] -} {{21 1 79 13} {107 1 93 13} {200 1 7 13}} +} [list [list 21 1 79 $fixedHeight] [list 107 1 93 $fixedHeight] [list 200 1 7 $fixedHeight]] .t configure -width 40 -bd 0 -relief flat -highlightthickness 0 -padx 0 \ -tabs {} update -test textDisp-26.1 {AdjustForTab procedure, no tabs} {fonts} { +test textDisp-26.1 {AdjustForTab procedure, no tabs} {textfonts} { .t delete 1.0 end .t insert 1.0 a\tbcdefghij\tc\td list [lindex [.t bbox 1.2] 0] [lindex [.t bbox 1.12] 0] \ [lindex [.t bbox 1.14] 0] -} {56 168 224} +} [list 56 168 224] test textDisp-26.2 {AdjustForTab procedure, not enough tabs specified} { .t delete 1.0 end .t insert 1.0 a\tb\tc\td @@ -2834,7 +2898,7 @@ test textDisp-26.2 {AdjustForTab procedure, not enough tabs specified} { .t tag add x 1.0 end list [lindex [.t bbox 1.2] 0] [lindex [.t bbox 1.4] 0] \ [lindex [.t bbox 1.6] 0] -} {40 80 120} +} [list 40 80 120] test textDisp-26.3 {AdjustForTab procedure, not enough tabs specified} { .t delete 1.0 end .t insert 1.0 a\tb\tc\td\te @@ -2845,7 +2909,7 @@ test textDisp-26.3 {AdjustForTab procedure, not enough tabs specified} { [expr [lindex [.t bbox 1.4] 0] + [lindex [.t bbox 1.4] 2]] \ [expr [lindex [.t bbox 1.6] 0] + [lindex [.t bbox 1.6] 2]] \ [expr [lindex [.t bbox 1.8] 0] + [lindex [.t bbox 1.8] 2]] -} {40 70 100 130} +} [list 40 70 100 130] test textDisp-26.4 {AdjustForTab procedure, different alignments} { .t delete 1.0 end .t insert 1.0 a\tbc\tde\tfg\thi @@ -2857,7 +2921,7 @@ test textDisp-26.4 {AdjustForTab procedure, different alignments} { .t tag add y 1.8 list [lindex [.t bbox 1.3] 0] [lindex [.t bbox 1.5] 0] \ [lindex [.t bbox 1.10] 0] -} {40 80 130} +} [list 40 80 130] test textDisp-26.5 {AdjustForTab procedure, numeric alignment} { .t delete 1.0 end .t insert 1.0 a\t1.234 @@ -2936,7 +3000,7 @@ test textDisp-26.12 {AdjustForTab procedure, adjusting chunks} { update lindex [.t bbox 1.5] 0 } {120} -test textDisp-26.13 {AdjustForTab procedure, not enough space} {fonts} { +test textDisp-26.13 {AdjustForTab procedure, not enough space} {textfonts} { .t delete 1.0 end .t insert 1.0 "abc\txyz\tqrs\txyz\t0" .t tag delete x @@ -2944,97 +3008,97 @@ test textDisp-26.13 {AdjustForTab procedure, not enough space} {fonts} { .t tag add x 1.0 end list [lindex [.t bbox 1.4] 0] [lindex [.t bbox 1.8] 0] \ [lindex [.t bbox 1.12] 0] [lindex [.t bbox 1.16] 0] -} {28 56 84 120} +} [list 28 56 84 120] .t configure -width 20 -bd 2 -highlightthickness 2 -relief sunken -tabs {} \ -wrap char update -test textDisp-27.1 {SizeOfTab procedure, old-style tabs} {fonts} { +test textDisp-27.1 {SizeOfTab procedure, old-style tabs} {textfonts} { .t delete 1.0 end .t insert 1.0 a\tbcdefghij\tc\td list [.t bbox 1.2] [.t bbox 1.10] [.t bbox 1.12] -} {{60 5 7 13} {116 5 7 13} {4 18 7 13}} -test textDisp-27.2 {SizeOfTab procedure, choosing tabX and alignment} {fonts} { +} [list [list 60 5 7 $fixedHeight] [list 116 5 7 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.2 {SizeOfTab procedure, choosing tabX and alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\tbcd .t tag delete x .t tag configure x -tabs 120 .t tag add x 1.0 end list [.t bbox 1.3] [.t bbox 1.4] -} {{131 5 13 13} {4 18 7 13}} -test textDisp-27.3 {SizeOfTab procedure, choosing tabX and alignment} {fonts} { +} [list [list 131 5 13 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.3 {SizeOfTab procedure, choosing tabX and alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\t\t\tbcd .t tag delete x .t tag configure x -tabs 40 .t tag add x 1.0 end list [.t bbox 1.5] [.t bbox 1.6] -} {{131 5 13 13} {4 18 7 13}} -test textDisp-27.4 {SizeOfTab procedure, choosing tabX and alignment} {fonts} { +} [list [list 131 5 13 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.4 {SizeOfTab procedure, choosing tabX and alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\t\t\tbcd .t tag delete x .t tag configure x -tabs {20 center 70 left} .t tag add x 1.0 end list [.t bbox 1.5] [.t bbox 1.6] -} {{131 5 13 13} {4 18 7 13}} -test textDisp-27.5 {SizeOfTab procedure, center alignment} {fonts} { +} [list [list 131 5 13 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.5 {SizeOfTab procedure, center alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\txyzzyabc .t tag delete x .t tag configure x -tabs {120 center} .t tag add x 1.0 end list [.t bbox 1.6] [.t bbox 1.7] -} {{135 5 9 13} {4 18 7 13}} -test textDisp-27.6 {SizeOfTab procedure, center alignment} {fonts} { +} [list [list 135 5 9 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.6 {SizeOfTab procedure, center alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\txyzzyabc .t tag delete x .t tag configure x -tabs {150 center} .t tag add x 1.0 end list [.t bbox 1.6] [.t bbox 1.7] -} {{32 18 7 13} {39 18 7 13}} -test textDisp-27.7 {SizeOfTab procedure, center alignment, wrap -none (potential numerical problems)} {fonts} { +} [list [list 32 [expr {$fixedDiff + 18}] 7 $fixedHeight] [list 39 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.7 {SizeOfTab procedure, center alignment, wrap -none (potential numerical problems)} {textfonts} { .t delete 1.0 end .t configure -tabs {1c 2c center 3c 4c} -wrap none -width 40 .t insert 1.0 a\tb\tc\td\te\n012345678934567890a\tbb\tcc\tdd update .t bbox 2.24 -} {172 18 7 13} +} [list 172 [expr {$fixedDiff + 18}] 7 $fixedHeight] .t configure -wrap char -tabs {} -width 20 update -test textDisp-27.8 {SizeOfTab procedure, right alignment} {fonts} { +test textDisp-27.8 {SizeOfTab procedure, right alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\t\txyzzyabc .t tag delete x .t tag configure x -tabs {100 left 140 right} .t tag add x 1.0 end list [.t bbox 1.6] [.t bbox 1.7] -} {{137 5 7 13} {4 18 7 13}} -test textDisp-27.9 {SizeOfTab procedure, left alignment} {fonts} { +} [list [list 137 5 7 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.9 {SizeOfTab procedure, left alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\txyzzyabc .t tag delete x .t tag configure x -tabs {120} .t tag add x 1.0 end list [.t bbox 1.3] [.t bbox 1.4] -} {{131 5 13 13} {4 18 7 13}} -test textDisp-27.10 {SizeOfTab procedure, numeric alignment} {fonts} { +} [list [list 131 5 13 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.10 {SizeOfTab procedure, numeric alignment} {textfonts} { .t delete 1.0 end .t insert 1.0 a\t123.4 .t tag delete x .t tag configure x -tabs {120 numeric} .t tag add x 1.0 end list [.t bbox 1.3] [.t bbox 1.4] -} {{117 5 27 13} {4 18 7 13}} -test textDisp-27.11 {SizeOfTab procedure, making tabs at least as wide as a space} {fonts} { +} [list [list 117 5 27 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] +test textDisp-27.11 {SizeOfTab procedure, making tabs at least as wide as a space} {textfonts} { .t delete 1.0 end .t insert 1.0 abc\tdefghijklmnopqrst .t tag delete x .t tag configure x -tabs {120} .t tag add x 1.0 end list [.t bbox 1.5] [.t bbox 1.6] -} {{131 5 13 13} {4 18 7 13}} +} [list [list 131 5 13 $fixedHeight] [list 4 [expr {$fixedDiff + 18}] 7 $fixedHeight]] proc bizarre_scroll args { .t2.t delete 5.0 end @@ -3054,7 +3118,7 @@ test textDisp-28.1 {"yview" option with bizarre scroll command} { lappend result [.t2.t index @0,0] } {6.0 1.0} -test textDisp-29.1 {miscellaneous: lines wrap but are still too long} {fonts} { +test textDisp-29.1 {miscellaneous: lines wrap but are still too long} {textfonts} { catch {destroy .t2} toplevel .t2 wm geometry .t2 +0+0 @@ -3068,8 +3132,8 @@ test textDisp-29.1 {miscellaneous: lines wrap but are still too long} {fonts} { .t2.t window create 1.1 -window .t2.t.f update list [.t2.t xview] [winfo geom .t2.t.f] [.t2.t bbox 1.3] -} {{0 0.466666666667} 300x50+5+18 {12 68 7 13}} -test textDisp-29.2 {miscellaneous: lines wrap but are still too long} {fonts} { +} [list {0.0 0.466666666667} 300x50+5+[expr {$fixedDiff + 18}] [list 12 [expr {$fixedDiff + 68}] 7 $fixedHeight]] +test textDisp-29.2 {miscellaneous: lines wrap but are still too long} {textfonts} { catch {destroy .t2} toplevel .t2 wm geometry .t2 +0+0 @@ -3084,8 +3148,8 @@ test textDisp-29.2 {miscellaneous: lines wrap but are still too long} {fonts} { .t2.t xview scroll 1 unit update list [.t2.t xview] [winfo geom .t2.t.f] [.t2.t bbox 1.3] -} {{0.0233333333333 0.49} 300x50+-2+18 {5 68 7 13}} -test textDisp-29.3 {miscellaneous: lines wrap but are still too long} {fonts} { +} [list {0.0233333333333 0.49} 300x50+-2+[expr {$fixedDiff + 18}] [list 5 [expr {$fixedDiff + 68}] 7 $fixedHeight]] +test textDisp-29.3 {miscellaneous: lines wrap but are still too long} {textfonts} { catch {destroy .t2} toplevel .t2 wm geometry .t2 +0+0 @@ -3101,7 +3165,7 @@ test textDisp-29.3 {miscellaneous: lines wrap but are still too long} {fonts} { .t2.t xview scroll 200 units update list [.t2.t xview] [winfo geom .t2.t.f] [.t2.t bbox 1.3] -} {{0.536666666667 1} 300x50+-156+18 {}} +} [list {0.536666666667 1.0} 300x50+-156+[expr {$fixedDiff + 18}] {}] test textDisp-30.1 {elidden text complications} {knownBug} { .t2.t delete 1.0 end @@ -3127,7 +3191,7 @@ test textDisp-31.1 {line embedded window height update} { lappend res [.t count -ypixels 1.0 end] lappend res [.t count -update -ypixels 1.0 end] set res -} {190 190 105} +} [list 190 190 105] test textDisp-31.2 {line update index shifting} { set res {} @@ -3144,7 +3208,7 @@ test textDisp-31.2 {line update index shifting} { lappend res [.t count -ypixels 1.0 end] lappend res [.t count -update -ypixels 1.0 end] set res -} {190 220 135 105 190} +} [list 190 220 135 105 190] test textDisp-31.3 {line update index shifting} { # Should do exactly the same as the above, as long @@ -3168,7 +3232,7 @@ test textDisp-31.3 {line update index shifting} { update ; after 1000 ; update lappend res [.t count -ypixels 1.0 end] set res -} {190 220 135 105 190} +} [list 190 220 135 105 190] test textDisp-31.4 {line embedded image height update} { set res {} @@ -3181,7 +3245,7 @@ test textDisp-31.4 {line embedded image height update} { lappend res [.t count -ypixels 1.0 end] lappend res [.t count -update -ypixels 1.0 end] set res -} {190 190 105} +} [list 190 190 105] test textDisp-31.5 {line update index shifting} { set res {} @@ -3198,7 +3262,7 @@ test textDisp-31.5 {line update index shifting} { lappend res [.t count -ypixels 1.0 end] lappend res [.t count -update -ypixels 1.0 end] set res -} {190 220 135 105 190} +} [list 190 220 135 105 190] test textDisp-31.6 {line update index shifting} { # Should do exactly the same as the above, as long @@ -3222,7 +3286,7 @@ test textDisp-31.6 {line update index shifting} { update ; after 1000 ; update lappend res [.t count -ypixels 1.0 end] set res -} {190 220 135 105 190} +} [list 190 220 135 105 190] test textDisp-32.0 {everything elided} { # Must not crash -- cgit v0.12