diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-08-29 19:33:55 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-08-29 19:33:55 (GMT) |
commit | 405efb77f1e112a07406b05b1dfca6b8622cc9c9 (patch) | |
tree | c8326377193f041b92aa0cb98a6291c79ec88d7e /tests | |
parent | 68fc0a0ef4781d53802b28f569935acedc875a92 (diff) | |
parent | b4c4a98400bc483fdc35555c62cb4de6d2814bdf (diff) | |
download | tk-405efb77f1e112a07406b05b1dfca6b8622cc9c9.zip tk-405efb77f1e112a07406b05b1dfca6b8622cc9c9.tar.gz tk-405efb77f1e112a07406b05b1dfca6b8622cc9c9.tar.bz2 |
Merge trunk
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bind.test | 958 | ||||
-rw-r--r-- | tests/bugs.tcl | 41 | ||||
-rw-r--r-- | tests/constraints.tcl | 2 | ||||
-rw-r--r-- | tests/ttk/ttk.test | 1 |
4 files changed, 714 insertions, 288 deletions
diff --git a/tests/bind.test b/tests/bind.test index 607c25a..fc1cb36 100644 --- a/tests/bind.test +++ b/tests/bind.test @@ -34,19 +34,6 @@ proc unsetBindings {} { bind .t <Enter> {} } -# This function fills the pattern matcher's ring buffer with events of -# the specified type. This can be used when testing with generated -# events to make sure that there are no stray events in the ring -# buffer which might cause the pattern matcher to find unintended -# matches. The size of the ring buffer is EVENT_BUFFER_SIZE, which is -# currently set to 30 (or 45 on macOS). If this changes, the code -# below will need to change. -proc clearRingBuffer {{event}} { - for {set i 0} {$i < 45} {incr i} { - event generate . $event - } -} - # move the mouse pointer away of the testing area # otherwise some spurious events may pollute the tests toplevel .top @@ -90,10 +77,10 @@ test bind-1.7 {bind command} -body { } -result {test script more text} test bind-1.8 {bind command} -body { - bind .t <gorp-> {test script} + bind .t <gorp-> {test script} } -returnCodes error -result {bad event type or keysym "gorp"} test bind-1.9 {bind command} -body { - catch {bind .t <gorp-> {test script}} + catch {bind .t <gorp-> {test script}} bind .t } -result {} test bind-1.10 {bind command} -body { @@ -154,10 +141,10 @@ test bind-2.8 {bindtags command} -body { test bind-2.9 {bindtags command} -body { frame .t.f bindtags .t.f {a b c} - bindtags .t.f "\{" + bindtags .t.f "\{" } -cleanup { destroy .t.f -} -returnCodes error -result {unmatched open brace in list} +} -returnCodes error -result {unmatched open brace in list} test bind-2.10 {bindtags command} -body { frame .t.f bindtags .t.f {a b c} @@ -169,10 +156,10 @@ test bind-2.10 {bindtags command} -body { test bind-2.11 {bindtags command} -body { frame .t.f bindtags .t.f {a b c} - bindtags .t.f "a .gorp b" + bindtags .t.f "a .gorp b" } -cleanup { destroy .t.f -} -returnCodes ok +} -returnCodes ok test bind-2.12 {bindtags command} -body { frame .t.f bindtags .t.f {a b c} @@ -212,7 +199,7 @@ test bind-4.1 {TkBindEventProc procedure} -setup { bind {a b} <Enter> {lappend x "%W enter {a b}"} bind .t <Enter> {lappend x "%W enter .t"} bind .t.f <Enter> {lappend x "%W enter .t.f"} - + event generate .t.f <Enter> return $x } -cleanup { @@ -232,9 +219,9 @@ test bind-4.2 {TkBindEventProc procedure} -setup { bind {a b} <Enter> {lappend x "%W enter {a b}"} bind .t <Enter> {lappend x "%W enter .t"} bind .t.f <Enter> {lappend x "%W enter .t.f"} - + bindtags .t.f {.t.f {a b} xyz} - event generate .t.f <Enter> + event generate .t.f <Enter> return $x } -cleanup { destroy .t.f @@ -248,7 +235,7 @@ test bind-4.3 {TkBindEventProc procedure} -body { bind xyz <Enter> {lappend x "%W enter xyz"} bind {a b} <Enter> {lappend x "%W enter {a b}"} bind .t <Enter> {lappend x "%W enter .t"} - + event generate .t <Enter> return $x } -cleanup { @@ -268,7 +255,7 @@ test bind-4.4 {TkBindEventProc procedure} -setup { bind xyz <Enter> {lappend x "%W enter xyz"} bind {a b} <Enter> {lappend x "%W enter {a b}"} bind .t <Enter> {lappend x "%W enter .t"} - + bindtags .t.f {.t.f .t.f2 .t.f3} bind .t.f <Enter> {lappend x "%W enter .t.f"} bind .t.f3 <Enter> {lappend x "%W enter .t.f3"} @@ -292,7 +279,7 @@ test bind-4.5 {TkBindEventProc procedure} -setup { bind {a b} <Enter> {lappend x "%W enter {a b}"} bind .t <Enter> {lappend x "%W enter .t"} bindtags .t.f {a b c d e f g h i j k l m n o p q r s t u v w x y z} - + event generate .t.f <Enter> } -cleanup { destroy .t.f @@ -396,7 +383,7 @@ test bind-10.2 {Tk_GetBinding procedure} -body { } -result {Test} test bind-11.1 {Tk_GetAllBindings procedure} -body { - frame .t.f + frame .t.f foreach i "! a \\\{ ~ <Delete> <space> <<Paste>> <Tab> <Linefeed> <less> <Meta-a> <Acircumflex>" { bind .t.f $i Test } @@ -405,7 +392,7 @@ test bind-11.1 {Tk_GetAllBindings procedure} -body { destroy .t.f } -result {! <<Paste>> <Key-Acircumflex> <Key-Delete> <Key-Linefeed> <Key-Tab> <Key-less> <Key-space> <Meta-Key-a> a \{ ~} test bind-11.2 {Tk_GetAllBindings procedure} -body { - frame .t.f + frame .t.f foreach i "<Double-1> <Triple-1> <Meta-Control-a> <Double-Alt-Enter> <1>" { bind .t.f $i Test } @@ -414,7 +401,7 @@ test bind-11.2 {Tk_GetAllBindings procedure} -body { destroy .t.f } -result {<Button-1> <Control-Meta-Key-a> <Double-Alt-Enter> <Double-Button-1> <Triple-Button-1>} test bind-11.3 {Tk_GetAllBindings procedure} -body { - frame .t.f + frame .t.f foreach i "<Double-Triple-1> abcd a<Leave>b" { bind .t.f $i Test } @@ -448,7 +435,7 @@ test bind-13.1 {Tk_BindEvent procedure} -setup { bind Test : {lappend x "%W %K Test :"} bind all _ {lappend x "%W %K all _"} bind .t.f : {lappend x "%W %K .t.f :"} - + event generate .t.f <Key-colon> event generate .t.f <Key-plus> event generate .t.f <Key-underscore> @@ -471,7 +458,7 @@ test bind-13.2 {Tk_BindEvent procedure} -setup { bind Test <KeyPress> {lappend x "%W %K Test press any"; break} bind all <KeyPress> {continue; lappend x "%W %K all press any"} bind .t.f : {lappend x "%W %K .t.f pressed colon"} - + event generate .t.f <Key-colon> return $x } -cleanup { @@ -527,11 +514,11 @@ test bind-13.5 {Tk_BindEvent procedure} -body { frame .t.g -gorp foo } -cleanup { bind all <Destroy> {} -} -returnCodes error -result {unknown option "-gorp"} +} -returnCodes error -result {unknown option "-gorp"} test bind-13.6 {Tk_BindEvent procedure} -body { bind all <Destroy> {lappend x "%W destroyed"} set x {} - catch {frame .t.g -gorp foo} + catch {frame .t.g -gorp foo} return $x } -cleanup { bind all <Destroy> {} @@ -612,10 +599,10 @@ test bind-13.11 {Tk_BindEvent procedure: collapse Motions} -setup { set x {} } -body { bind .t.f <Motion> "lappend x Motion%#(%x,%y)" - event generate .t.f <Motion> -serial 100 -x 100 -y 200 -when tail + event generate .t.f <Motion> -serial 100 -x 100 -y 200 -when tail update event generate .t.f <Motion> -serial 101 -x 200 -y 300 -when tail - event generate .t.f <Motion> -serial 102 -x 300 -y 400 -when tail + event generate .t.f <Motion> -serial 102 -x 300 -y 400 -when tail update return $x } -cleanup { @@ -629,10 +616,10 @@ test bind-13.12 {Tk_BindEvent procedure: collapse repeating modifiers} -setup { } -body { bind .t.f <Key> "lappend x %K%#" bind .t.f <KeyRelease> "lappend x %K%#" - event generate .t.f <Key-Shift_L> -serial 100 -when tail - event generate .t.f <KeyRelease-Shift_L> -serial 101 -when tail - event generate .t.f <Key-Shift_L> -serial 102 -when tail - event generate .t.f <KeyRelease-Shift_L> -serial 103 -when tail + event generate .t.f <Key-Shift_L> -serial 100 -when tail + event generate .t.f <KeyRelease-Shift_L> -serial 101 -when tail + event generate .t.f <Key-Shift_L> -serial 102 -when tail + event generate .t.f <KeyRelease-Shift_L> -serial 103 -when tail update } -cleanup { destroy .t.f @@ -868,7 +855,7 @@ test bind-13.27 {Tk_BindEvent procedure: no detail virtual pattern list} -setup set x {} } -body { bind .t.f <Button-2> {set x Button-2} - event generate .t.f <Button-2> + event generate .t.f <Button-2> return $x } -cleanup { destroy .t.f @@ -1032,7 +1019,7 @@ test bind-13.43 {Tk_BindEvent procedure: break in script} -setup { } -result {b1} test bind-13.45 {Tk_BindEvent procedure: error in script} -setup { proc bgerror msg { - global x + global x lappend x $msg } frame .t.f -class Test -width 150 -height 100 @@ -1221,7 +1208,7 @@ test bind-15.11 {MatchPatterns procedure, modifier checks} -setup { } -cleanup { destroy .t.f } -result {0} -test bind-15.12 {MatchPatterns procedure, ignore modifier presses and releases} -constraints { +test bind-15.12 {MatchPatterns procedure, ignore modifier presses and releases} -constraints { nonPortable } -setup { frame .t.f -class Test -width 150 -height 100 @@ -1262,7 +1249,7 @@ test bind-15.14 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -x 30 -y 40 event generate .t.f <Button-1> -x 31 -y 39 @@ -1279,7 +1266,7 @@ test bind-15.15 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -x 30 -y 40 event generate .t.f <Button-1> -x 29 -y 41 @@ -1296,7 +1283,7 @@ test bind-15.16 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -x 30 -y 40 event generate .t.f <Button-1> -x 40 -y 40 @@ -1313,7 +1300,7 @@ test bind-15.17 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -x 30 -y 40 event generate .t.f <Button-1> -x 20 -y 40 @@ -1330,7 +1317,7 @@ test bind-15.18 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -x 30 -y 40 event generate .t.f <Button-1> -x 30 -y 30 @@ -1347,7 +1334,7 @@ test bind-15.19 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -x 30 -y 40 event generate .t.f <Button-1> -x 30 -y 50 @@ -1364,7 +1351,7 @@ test bind-15.20 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -time 300 event generate .t.f <Button-1> -time 700 @@ -1381,7 +1368,7 @@ test bind-15.21 {MatchPatterns procedure, checking "nearby"} -setup { } -body { bind .t.f <Double-1> {set x 1} set x 0 - event generate .t.f <Button-2> + event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Button-1> -time 300 event generate .t.f <Button-1> -time 900 @@ -1395,7 +1382,6 @@ test bind-15.22 {MatchPatterns procedure, time wrap-around} -setup { pack .t.f focus -force .t.f update - clearRingBuffer <Key> } -body { bind .t.f <Double-1> {set x 1} set x 0 @@ -1411,7 +1397,6 @@ test bind-15.23 {MatchPatterns procedure, time wrap-around} -setup { pack .t.f focus -force .t.f update - clearRingBuffer <Key> } -body { bind .t.f <Double-1> {set x 1} set x 0 @@ -1428,7 +1413,6 @@ test bind-15.24 {MatchPatterns procedure, virtual event} -setup { focus -force .t.f update set x {} - clearRingBuffer <Key> } -body { event add <<Paste>> <Button-1> bind .t.f <<Paste>> {lappend x paste} @@ -1445,7 +1429,6 @@ test bind-15.25 {MatchPatterns procedure, reject a virtual event} -setup { focus -force .t.f update set x {} - clearRingBuffer <Key> } -body { event add <<Paste>> <Shift-Button-1> bind .t.f <<Paste>> {lappend x paste} @@ -1462,7 +1445,6 @@ test bind-15.26 {MatchPatterns procedure, reject a virtual event} -setup { focus -force .t.f update set x {} - clearRingBuffer <Key> } -body { event add <<V1>> <Button> event add <<V2>> <Button-1> @@ -1489,7 +1471,6 @@ test bind-15.27 {MatchPatterns procedure, conflict resolution} -setup { pack .t.f focus -force .t.f update - clearRingBuffer <Button> } -body { bind .t.f <KeyPress> {set x 0} bind .t.f 1 {set x 1} @@ -1504,7 +1485,6 @@ test bind-15.28 {MatchPatterns procedure, conflict resolution} -setup { pack .t.f focus -force .t.f update - clearRingBuffer <Button> } -body { bind .t.f <KeyPress> {set x 0} bind .t.f 1 {set x 1} @@ -1519,7 +1499,6 @@ test bind-15.29 {MatchPatterns procedure, conflict resolution} -setup { pack .t.f focus -force .t.f update - clearRingBuffer <Button> } -body { bind .t.f <KeyPress> {lappend x 0} bind .t.f 1 {lappend x 1} @@ -1537,7 +1516,6 @@ test bind-15.30 {MatchPatterns procedure, conflict resolution} -setup { pack .t.f focus -force .t.f update - clearRingBuffer <Key> } -body { bind .t.f <ButtonPress> {set x 0} bind .t.f <1> {set x 1} @@ -1554,7 +1532,6 @@ test bind-15.31 {MatchPatterns procedure, conflict resolution} -setup { focus -force .t.f update set x {} - clearRingBuffer <Button> } -body { bind .t.f <M1-Key> {set x 0} bind .t.f <M2-Key> {set x 1} @@ -1568,7 +1545,6 @@ test bind-15.32 {MatchPatterns procedure, conflict resolution} -setup { pack .t.f focus -force .t.f update - clearRingBuffer <Button> } -body { bind .t.f <M2-Key> {set x 0} bind .t.f <M1-Key> {set x 1} @@ -1584,7 +1560,6 @@ test bind-15.33 {MatchPatterns procedure, conflict resolution} -setup { focus -force .t.f update set x {} - clearRingBuffer <Key> } -body { bind .t.f <1> {lappend x single} bind Test <1> {lappend x single(Test)} @@ -2049,7 +2024,7 @@ test bind-16.34 {ExpandPercents procedure} -setup { destroy .t.f } -result {781 632} test bind-16.35 {ExpandPercents procedure} -constraints { - nonPortable + nonPortable } -setup { frame .t.f -class Test -width 150 -height 100 pack .t.f @@ -2232,7 +2207,6 @@ test bind-16.46 {ExpandPercents procedure} -setup { focus -force .t.e foreach p [event info] {event delete $p} update - clearRingBuffer <Button> } -body { bind all <Key> {set z "%M"} bind Entry <Key> {set y "%M"} @@ -2275,7 +2249,7 @@ test bind-17.6 {event command: add with error} -body { event add <<Paste>> <Control-v> <Button-2> abc <xyz> <1> } -cleanup { event delete <<Paste>> -} -returnCodes error -result {bad event type or keysym "xyz"} +} -returnCodes error -result {bad event type or keysym "xyz"} test bind-17.7 {event command: add with error} -body { event delete <<Paste>> catch {event add <<Paste>> <Control-v> <Button-2> abc <xyz> <1>} @@ -2293,6 +2267,7 @@ test bind-17.9 {event command: delete many} -body { event delete <<Paste>> <1> <2> lsort [event info <<Paste>>] } -cleanup { + event delete <<Paste>> event delete <<Paste>> <3> t } -result {<Button-3> t} test bind-17.10 {event command: delete all} -body { @@ -2368,7 +2343,7 @@ test bind-18.1 {CreateVirtualEvent procedure: GetVirtualEventUid} -body { test bind-18.2 {CreateVirtualEvent procedure: FindSequence} -body { event add <<asd>> <Ctrl-v> } -returnCodes error -result {bad event type or keysym "Ctrl"} -test bind-18.3 {CreateVirtualEvent procedure: new physical} -body { +test bind-18.3 {CreateVirtualEvent procedure: new physical} -body { event delete <<xyz>> event add <<xyz>> <Control-v> event info <<xyz>> @@ -2377,7 +2352,7 @@ test bind-18.3 {CreateVirtualEvent procedure: new physical} -body { } -result {<Control-Key-v>} test bind-18.4 {CreateVirtualEvent procedure: duplicate physical} -body { event delete <<xyz>> - event add <<xyz>> <Control-v> + event add <<xyz>> <Control-v> event add <<xyz>> <Control-v> event info <<xyz>> } -cleanup { @@ -2448,13 +2423,13 @@ test bind-19.7 {DeleteVirtualEvent procedure: owns 1, delete all} -body { foreach p [event info] {event delete $p} event add <<xyz>> <Control-v> event delete <<xyz>> - event info + event info } -result {} test bind-19.8 {DeleteVirtualEvent procedure: owns 1, delete 1} -body { foreach p [event info] {event delete $p} event add <<xyz>> <Control-v> event delete <<xyz>> <Control-v> - event info + event info } -result {} test bind-19.9 {DeleteVirtualEvent procedure: owns many, delete all} -body { foreach p [event info] {event delete $p} @@ -2506,7 +2481,7 @@ test bind-19.12 {DeleteVirtualEvent procedure: owned by 1, first in chain} -setu event generate .t.f <ButtonRelease-2> event generate .t.f <Control-Button-2> event generate .t.f <Control-ButtonRelease-2> - event delete <<xyz>> + event delete <<xyz>> event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Control-Button-2> @@ -2573,7 +2548,7 @@ test bind-19.14 {DeleteVirtualEvent procedure: owned by 1, last in chain} -setup event generate .t.f <Control-ButtonRelease-2> event generate .t.f <Shift-Button-2> event generate .t.f <Shift-ButtonRelease-2> - event delete <<xyz>> + event delete <<xyz>> event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.f <Control-Button-2> @@ -2590,6 +2565,7 @@ test bind-19.15 {DeleteVirtualEvent procedure: owned by many, first} -setup { pack [frame .t.f -class Test -width 150 -height 100] pack [frame .t.g -class Test -width 150 -height 100] pack [frame .t.h -class Test -width 150 -height 100] + after 250 ;# we need a bit time to ensure that .t.h is mapped (<TODO>: fix this race condition) focus -force .t.f update set x {} @@ -2609,7 +2585,7 @@ test bind-19.15 {DeleteVirtualEvent procedure: owned by many, first} -setup { event generate .t.g <ButtonRelease-2> event generate .t.h <Button-2> event generate .t.h <ButtonRelease-2> - event delete <<xyz>> + event delete <<xyz>> event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.g <Button-2> @@ -2626,6 +2602,7 @@ test bind-19.16 {DeleteVirtualEvent procedure: owned by many, middle} -setup { pack [frame .t.f -class Test -width 150 -height 100] pack [frame .t.g -class Test -width 150 -height 100] pack [frame .t.h -class Test -width 150 -height 100] + after 250 ;# we need a bit time to ensure that .t.h is mapped (<TODO>: fix this race condition) focus -force .t.f update set x {} @@ -2662,6 +2639,7 @@ test bind-19.17 {DeleteVirtualEvent procedure: owned by many, last} -setup { pack [frame .t.f -class Test -width 150 -height 100] pack [frame .t.g -class Test -width 150 -height 100] pack [frame .t.h -class Test -width 150 -height 100] + after 250 ;# we need a bit time to ensure that .t.h is mapped (<TODO>: fix this race condition) focus -force .t.f update set x {} @@ -2681,7 +2659,7 @@ test bind-19.17 {DeleteVirtualEvent procedure: owned by many, last} -setup { event generate .t.g <ButtonRelease-2> event generate .t.h <Button-2> event generate .t.h <ButtonRelease-2> - event delete <<def>> + event delete <<def>> event generate .t.f <Button-2> event generate .t.f <ButtonRelease-2> event generate .t.g <Button-2> @@ -2774,7 +2752,7 @@ test bind-22.5 {HandleEventGenerate} -body { } -returnCodes error -result {bad event type or keysym "xyz"} test bind-22.6 {HandleEventGenerate} -body { event generate . <Double-Button-1> -} -returnCodes error -result {Double or Triple modifier not allowed} +} -returnCodes error -result {Double, Triple, or Quadruple modifier not allowed} test bind-22.7 {HandleEventGenerate} -body { event generate . xyz } -returnCodes error -result {only one event specification allowed} @@ -3418,7 +3396,7 @@ test bind-22.55 {HandleEventGenerate: options <Map> -override xyz} -setup { set x {} } -body { bind .t.f <Map> "lappend x %o" - event generate .t.f <Map> -override xyz + event generate .t.f <Map> -override xyz } -cleanup { destroy .t.f } -returnCodes error -result {expected boolean value but got "xyz"} @@ -3431,7 +3409,7 @@ test bind-22.56 {HandleEventGenerate: options <Map> -override 1} -setup { set x {} } -body { bind .t.f <Map> "lappend x %o" - event generate .t.f <Map> -override 1 + event generate .t.f <Map> -override 1 return $x } -cleanup { destroy .t.f @@ -3445,7 +3423,7 @@ test bind-22.57 {HandleEventGenerate: options <Reparent> -override 1} -setup { set x {} } -body { bind .t.f <Reparent> "lappend x %o" - event generate .t.f <Reparent> -override 1 + event generate .t.f <Reparent> -override 1 return $x } -cleanup { destroy .t.f @@ -3459,7 +3437,7 @@ test bind-22.58 {HandleEventGenerate: options <Configure> -override 1} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %o" - event generate .t.f <Configure> -override 1 + event generate .t.f <Configure> -override 1 return $x } -cleanup { destroy .t.f @@ -3473,7 +3451,7 @@ test bind-22.59 {HandleEventGenerate: options <Key> -override 1} -setup { set x {} } -body { bind .t.f <Key> "lappend x %k" - event generate .t.f <Key> -override 1 + event generate .t.f <Key> -override 1 } -cleanup { destroy .t.f } -returnCodes error -result {<Key> event doesn't accept "-override" option} @@ -3486,7 +3464,7 @@ test bind-22.60 {HandleEventGenerate: options <Circulate> -place xyz} -setup { set x {} } -body { bind .t.f <Circulate> "lappend x %p" - event generate .t.f <Circulate> -place xyz + event generate .t.f <Circulate> -place xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad -place value "xyz": must be PlaceOnTop, or PlaceOnBottom} @@ -3499,7 +3477,7 @@ test bind-22.61 {HandleEventGenerate: options <Circulate> -place PlaceOnTop} -se set x {} } -body { bind .t.f <Circulate> "lappend x %p" - event generate .t.f <Circulate> -place PlaceOnTop + event generate .t.f <Circulate> -place PlaceOnTop return $x } -cleanup { destroy .t.f @@ -3513,7 +3491,7 @@ test bind-22.62 {HandleEventGenerate: options <Key> -place PlaceOnTop} -setup { set x {} } -body { bind .t.f <Key> "lappend x %k" - event generate .t.f <Key> -place PlaceOnTop + event generate .t.f <Key> -place PlaceOnTop } -cleanup { destroy .t.f } -returnCodes error -result {<Key> event doesn't accept "-place" option} @@ -3526,7 +3504,7 @@ test bind-22.63 {HandleEventGenerate: options <Key> -root .xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %R" - event generate .t.f <Key> -root .xyz + event generate .t.f <Key> -root .xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad window path name ".xyz"} @@ -3539,7 +3517,7 @@ test bind-22.64 {HandleEventGenerate: options <Key> -root .t} -setup { set x {} } -body { bind .t.f <Key> "lappend x %R" - event generate .t.f <Key> -root .t + event generate .t.f <Key> -root .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -3553,7 +3531,7 @@ test bind-22.65 {HandleEventGenerate: options <Key> -root xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %R" - event generate .t.f <Key> -root xyz + event generate .t.f <Key> -root xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad window name/identifier "xyz"} @@ -3566,7 +3544,7 @@ test bind-22.66 {HandleEventGenerate: options <Key> -root [winfo id .t]} -setup set x {} } -body { bind .t.f <Key> "lappend x %R" - event generate .t.f <Key> -root [winfo id .t] + event generate .t.f <Key> -root [winfo id .t] expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -3580,7 +3558,7 @@ test bind-22.67 {HandleEventGenerate: options <Button> -root .t} -setup { set x {} } -body { bind .t.f <Button> "lappend x %R" - event generate .t.f <Button> -root .t + event generate .t.f <Button> -root .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -3594,7 +3572,7 @@ test bind-22.68 {HandleEventGenerate: options <ButtonRelease> -root .t} -setup { set x {} } -body { bind .t.f <ButtonRelease> "lappend x %R" - event generate .t.f <ButtonRelease> -root .t + event generate .t.f <ButtonRelease> -root .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -3608,7 +3586,7 @@ test bind-22.69 {HandleEventGenerate: options <Motion> -root .t} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %R" - event generate .t.f <Motion> -root .t + event generate .t.f <Motion> -root .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -3622,7 +3600,7 @@ test bind-22.70 {HandleEventGenerate: options <<Paste>> -root .t} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %R" - event generate .t.f <<Paste>> -root .t + event generate .t.f <<Paste>> -root .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -3636,7 +3614,7 @@ test bind-22.71 {HandleEventGenerate: options <Enter> -root .t} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %R" - event generate .t.f <Enter> -root .t + event generate .t.f <Enter> -root .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -3650,7 +3628,7 @@ test bind-22.72 {HandleEventGenerate: options <Configure> -root .t} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %R" - event generate .t.f <Configure> -root .t + event generate .t.f <Configure> -root .t } -cleanup { destroy .t.f } -returnCodes error -result {<Configure> event doesn't accept "-root" option} @@ -3663,7 +3641,7 @@ test bind-22.73 {HandleEventGenerate: options <Key> -rootx xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %X" - event generate .t.f <Key> -rootx xyz + event generate .t.f <Key> -rootx xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad screen distance "xyz"} @@ -3676,7 +3654,7 @@ test bind-22.74 {HandleEventGenerate: options <Key> -rootx 2i} -setup { set x {} } -body { bind .t.f <Key> "lappend x %X" - event generate .t.f <Key> -rootx 2i + event generate .t.f <Key> -rootx 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3690,7 +3668,7 @@ test bind-22.75 {HandleEventGenerate: options <Button> -rootx 2i} -setup { set x {} } -body { bind .t.f <Button> "lappend x %X" - event generate .t.f <Button> -rootx 2i + event generate .t.f <Button> -rootx 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3704,7 +3682,7 @@ test bind-22.76 {HandleEventGenerate: options <ButtonRelease> -rootx 2i} -setup set x {} } -body { bind .t.f <ButtonRelease> "lappend x %X" - event generate .t.f <ButtonRelease> -rootx 2i + event generate .t.f <ButtonRelease> -rootx 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3718,7 +3696,7 @@ test bind-22.77 {HandleEventGenerate: options <Motion> -rootx 2i} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %X" - event generate .t.f <Motion> -rootx 2i + event generate .t.f <Motion> -rootx 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3732,7 +3710,7 @@ test bind-22.78 {HandleEventGenerate: options <<Paste>> -rootx 2i} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %X" - event generate .t.f <<Paste>> -rootx 2i + event generate .t.f <<Paste>> -rootx 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3746,7 +3724,7 @@ test bind-22.79 {HandleEventGenerate: options <Enter> -rootx 2i} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %X" - event generate .t.f <Enter> -rootx 2i + event generate .t.f <Enter> -rootx 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3760,7 +3738,7 @@ test bind-22.80 {HandleEventGenerate: options <Configure> -rootx 2i} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %X" - event generate .t.f <Configure> -rootx 2i + event generate .t.f <Configure> -rootx 2i } -cleanup { destroy .t.f } -returnCodes error -result {<Configure> event doesn't accept "-rootx" option} @@ -3773,7 +3751,7 @@ test bind-22.81 {HandleEventGenerate: options <Key> -rooty xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %Y" - event generate .t.f <Key> -rooty xyz + event generate .t.f <Key> -rooty xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad screen distance "xyz"} @@ -3786,7 +3764,7 @@ test bind-22.82 {HandleEventGenerate: options <Key> -rooty 2i} -setup { set x {} } -body { bind .t.f <Key> "lappend x %Y" - event generate .t.f <Key> -rooty 2i + event generate .t.f <Key> -rooty 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3800,7 +3778,7 @@ test bind-22.83 {HandleEventGenerate: options <Button> -rooty 2i} -setup { set x {} } -body { bind .t.f <Button> "lappend x %Y" - event generate .t.f <Button> -rooty 2i + event generate .t.f <Button> -rooty 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3814,7 +3792,7 @@ test bind-22.84 {HandleEventGenerate: options <ButtonRelease> -rooty 2i} -setup set x {} } -body { bind .t.f <ButtonRelease> "lappend x %Y" - event generate .t.f <ButtonRelease> -rooty 2i + event generate .t.f <ButtonRelease> -rooty 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3828,7 +3806,7 @@ test bind-22.85 {HandleEventGenerate: options <Motion> -rooty 2i} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %Y" - event generate .t.f <Motion> -rooty 2i + event generate .t.f <Motion> -rooty 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3842,7 +3820,7 @@ test bind-22.86 {HandleEventGenerate: options <<Paste>> -rooty 2i} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %Y" - event generate .t.f <<Paste>> -rooty 2i + event generate .t.f <<Paste>> -rooty 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3856,7 +3834,7 @@ test bind-22.87 {HandleEventGenerate: options <Enter> -rooty 2i} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %Y" - event generate .t.f <Enter> -rooty 2i + event generate .t.f <Enter> -rooty 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -3870,7 +3848,7 @@ test bind-22.88 {HandleEventGenerate: options <Configure> -rooty 2i} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %Y" - event generate .t.f <Configure> -rooty 2i + event generate .t.f <Configure> -rooty 2i } -cleanup { destroy .t.f } -returnCodes error -result {<Configure> event doesn't accept "-rooty" option} @@ -3883,7 +3861,7 @@ test bind-22.89 {HandleEventGenerate: options <Key> -sendevent xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %E" - event generate .t.f <Key> -sendevent xyz + event generate .t.f <Key> -sendevent xyz } -cleanup { destroy .t.f } -returnCodes error -result {expected boolean value but got "xyz"} @@ -3896,7 +3874,7 @@ test bind-22.90 {HandleEventGenerate: options <Key> -sendevent 1} -setup { set x {} } -body { bind .t.f <Key> "lappend x %E" - event generate .t.f <Key> -sendevent 1 + event generate .t.f <Key> -sendevent 1 return $x } -cleanup { destroy .t.f @@ -3910,7 +3888,7 @@ test bind-22.91 {HandleEventGenerate: options <Key> -sendevent yes} -setup { set x {} } -body { bind .t.f <Key> "lappend x %E" - event generate .t.f <Key> -sendevent yes + event generate .t.f <Key> -sendevent yes return $x } -cleanup { destroy .t.f @@ -3924,11 +3902,11 @@ test bind-22.92 {HandleEventGenerate: options <Key> -sendevent 43} -setup { set x {} } -body { bind .t.f <Key> "lappend x %E" - event generate .t.f <Key> -sendevent 43 + event generate .t.f <Key> -sendevent 43 return $x } -cleanup { destroy .t.f -} -result {43} +} -result {1} test bind-22.93 {HandleEventGenerate: options <Key> -serial xyz} -setup { frame .t.f -class Test -width 150 -height 100 @@ -3938,7 +3916,7 @@ test bind-22.93 {HandleEventGenerate: options <Key> -serial xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %#" - event generate .t.f <Key> -serial xyz + event generate .t.f <Key> -serial xyz } -cleanup { destroy .t.f } -returnCodes error -result {expected integer but got "xyz"} @@ -3951,7 +3929,7 @@ test bind-22.94 {HandleEventGenerate: options <Key> -serial 100} -setup { set x {} } -body { bind .t.f <Key> "lappend x %#" - event generate .t.f <Key> -serial 100 + event generate .t.f <Key> -serial 100 return $x } -cleanup { destroy .t.f @@ -3965,7 +3943,7 @@ test bind-22.95 {HandleEventGenerate: options <Key> -state xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %s" - event generate .t.f <Key> -state xyz + event generate .t.f <Key> -state xyz } -cleanup { destroy .t.f } -returnCodes error -result {expected integer but got "xyz"} @@ -3978,7 +3956,7 @@ test bind-22.96 {HandleEventGenerate: options <Key> -state 1} -setup { set x {} } -body { bind .t.f <Key> "lappend x %s" - event generate .t.f <Key> -state 1 + event generate .t.f <Key> -state 1 return $x } -cleanup { destroy .t.f @@ -3992,7 +3970,7 @@ test bind-22.97 {HandleEventGenerate: options <Button> -state 1025} -setup { set x {} } -body { bind .t.f <Button> "lappend x %s" - event generate .t.f <Button> -state 1025 + event generate .t.f <Button> -state 1025 return $x } -cleanup { destroy .t.f @@ -4006,7 +3984,7 @@ test bind-22.98 {HandleEventGenerate: options <ButtonRelease> -state 1025} -setu set x {} } -body { bind .t.f <ButtonRelease> "lappend x %s" - event generate .t.f <ButtonRelease> -state 1025 + event generate .t.f <ButtonRelease> -state 1025 return $x } -cleanup { destroy .t.f @@ -4020,7 +3998,7 @@ test bind-22.99 {HandleEventGenerate: options <Motion> -state 1} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %s" - event generate .t.f <Motion> -state 1 + event generate .t.f <Motion> -state 1 return $x } -cleanup { destroy .t.f @@ -4034,7 +4012,7 @@ test bind-22.100 {HandleEventGenerate: options <<Paste>> -state 1} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %s" - event generate .t.f <<Paste>> -state 1 + event generate .t.f <<Paste>> -state 1 return $x } -cleanup { destroy .t.f @@ -4048,7 +4026,7 @@ test bind-22.101 {HandleEventGenerate: options <Enter> -state 1} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %s" - event generate .t.f <Enter> -state 1 + event generate .t.f <Enter> -state 1 return $x } -cleanup { destroy .t.f @@ -4062,7 +4040,7 @@ test bind-22.102 {HandleEventGenerate: options <Visibility> -state xyz} -setup { set x {} } -body { bind .t.f <Visibility> "lappend x %s" - event generate .t.f <Visibility> -state xyz + event generate .t.f <Visibility> -state xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad -state value "xyz": must be VisibilityUnobscured, VisibilityPartiallyObscured, or VisibilityFullyObscured} @@ -4075,7 +4053,7 @@ test bind-22.103 {HandleEventGenerate: options <Visibility> -state VisibilityUno set x {} } -body { bind .t.f <Visibility> "lappend x %s" - event generate .t.f <Visibility> -state VisibilityUnobscured + event generate .t.f <Visibility> -state VisibilityUnobscured return $x } -cleanup { destroy .t.f @@ -4089,7 +4067,7 @@ test bind-22.104 {HandleEventGenerate: options <Configure> -state xyz} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %s" - event generate .t.f <Configure> -state xyz + event generate .t.f <Configure> -state xyz } -cleanup { destroy .t.f } -returnCodes error -result {<Configure> event doesn't accept "-state" option} @@ -4102,7 +4080,7 @@ test bind-22.105 {HandleEventGenerate: options <Key> -subwindow .xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %S" - event generate .t.f <Key> -subwindow .xyz + event generate .t.f <Key> -subwindow .xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad window path name ".xyz"} @@ -4115,7 +4093,7 @@ test bind-22.106 {HandleEventGenerate: options <Key> -subwindow .t} -setup { set x {} } -body { bind .t.f <Key> "lappend x %S" - event generate .t.f <Key> -subwindow .t + event generate .t.f <Key> -subwindow .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -4129,7 +4107,7 @@ test bind-22.107 {HandleEventGenerate: options <Key> -subwindow xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %S" - event generate .t.f <Key> -subwindow xyz + event generate .t.f <Key> -subwindow xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad window name/identifier "xyz"} @@ -4142,7 +4120,7 @@ test bind-22.108 {HandleEventGenerate: options <Key> -subwindow [winfo id .t]} - set x {} } -body { bind .t.f <Key> "lappend x %S" - event generate .t.f <Key> -subwindow [winfo id .t] + event generate .t.f <Key> -subwindow [winfo id .t] expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -4156,7 +4134,7 @@ test bind-22.109 {HandleEventGenerate: options <Button> -subwindow .t} -setup { set x {} } -body { bind .t.f <Button> "lappend x %S" - event generate .t.f <Button> -subwindow .t + event generate .t.f <Button> -subwindow .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -4170,7 +4148,7 @@ test bind-22.110 {HandleEventGenerate: options <ButtonRelease> -subwindow .t} -s set x {} } -body { bind .t.f <ButtonRelease> "lappend x %S" - event generate .t.f <ButtonRelease> -subwindow .t + event generate .t.f <ButtonRelease> -subwindow .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -4184,7 +4162,7 @@ test bind-22.111 {HandleEventGenerate: options <Motion> -subwindow .t} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %S" - event generate .t.f <Motion> -subwindow .t + event generate .t.f <Motion> -subwindow .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -4198,7 +4176,7 @@ test bind-22.112 {HandleEventGenerate: options <<Paste>> -subwindow .t} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %S" - event generate .t.f <<Paste>> -subwindow .t + event generate .t.f <<Paste>> -subwindow .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -4212,7 +4190,7 @@ test bind-22.113 {HandleEventGenerate: options <Enter> -subwindow .t} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %S" - event generate .t.f <Enter> -subwindow .t + event generate .t.f <Enter> -subwindow .t expr {[winfo id .t] eq $x} } -cleanup { destroy .t.f @@ -4226,7 +4204,7 @@ test bind-22.114 {HandleEventGenerate: options <Configure> -subwindow .t} -setup set x {} } -body { bind .t.f <Configure> "lappend x %S" - event generate .t.f <Configure> -subwindow .t + event generate .t.f <Configure> -subwindow .t } -cleanup { destroy .t.f } -returnCodes error -result {<Configure> event doesn't accept "-subwindow" option} @@ -4239,7 +4217,7 @@ test bind-22.115 {HandleEventGenerate: options <Key> -time xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %t" - event generate .t.f <Key> -time xyz + event generate .t.f <Key> -time xyz } -cleanup { destroy .t.f } -returnCodes error -result {expected integer but got "xyz"} @@ -4252,7 +4230,7 @@ test bind-22.116 {HandleEventGenerate: options <Key> -time 100} -setup { set x {} } -body { bind .t.f <Key> "lappend x %t" - event generate .t.f <Key> -time 100 + event generate .t.f <Key> -time 100 return $x } -cleanup { destroy .t.f @@ -4266,7 +4244,7 @@ test bind-22.117 {HandleEventGenerate: options <Button> -time 100} -setup { set x {} } -body { bind .t.f <Button> "lappend x %t" - event generate .t.f <Button> -time 100 + event generate .t.f <Button> -time 100 return $x } -cleanup { destroy .t.f @@ -4280,7 +4258,7 @@ test bind-22.118 {HandleEventGenerate: options <ButtonRelease> -time 100} -setup set x {} } -body { bind .t.f <ButtonRelease> "lappend x %t" - event generate .t.f <ButtonRelease> -time 100 + event generate .t.f <ButtonRelease> -time 100 return $x } -cleanup { destroy .t.f @@ -4294,7 +4272,7 @@ test bind-22.119 {HandleEventGenerate: options <Motion> -time 100} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %t" - event generate .t.f <Motion> -time 100 + event generate .t.f <Motion> -time 100 return $x } -cleanup { destroy .t.f @@ -4308,7 +4286,7 @@ test bind-22.120 {HandleEventGenerate: options <<Paste>> -time 100} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %t" - event generate .t.f <<Paste>> -time 100 + event generate .t.f <<Paste>> -time 100 return $x } -cleanup { destroy .t.f @@ -4322,7 +4300,7 @@ test bind-22.121 {HandleEventGenerate: options <Enter> -time 100} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %t" - event generate .t.f <Enter> -time 100 + event generate .t.f <Enter> -time 100 return $x } -cleanup { destroy .t.f @@ -4336,7 +4314,7 @@ test bind-22.122 {HandleEventGenerate: options <Property> -time 100} -setup { set x {} } -body { bind .t.f <Property> "lappend x %t" - event generate .t.f <Property> -time 100 + event generate .t.f <Property> -time 100 return $x } -cleanup { destroy .t.f @@ -4350,7 +4328,7 @@ test bind-22.123 {HandleEventGenerate: options <Configure> -time 100} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %t" - event generate .t.f <Configure> -time 100 + event generate .t.f <Configure> -time 100 } -cleanup { destroy .t.f } -returnCodes error -result {<Configure> event doesn't accept "-time" option} @@ -4363,7 +4341,7 @@ test bind-22.124 {HandleEventGenerate: options <Expose> -width xyz} -setup { set x {} } -body { bind .t.f <Expose> "lappend x %w" - event generate .t.f <Expose> -width xyz + event generate .t.f <Expose> -width xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad screen distance "xyz"} @@ -4376,7 +4354,7 @@ test bind-22.125 {HandleEventGenerate: options <Expose> -width 2i} -setup { set x {} } -body { bind .t.f <Expose> "lappend x %w" - event generate .t.f <Expose> -width 2i + event generate .t.f <Expose> -width 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4390,7 +4368,7 @@ test bind-22.126 {HandleEventGenerate: options <Configure> -width 2i} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %w" - event generate .t.f <Configure> -width 2i + event generate .t.f <Configure> -width 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4404,7 +4382,7 @@ test bind-22.127 {HandleEventGenerate: options <Key> -width 2i} -setup { set x {} } -body { bind .t.f <Key> "lappend x %k" - event generate .t.f <Key> -width 2i + event generate .t.f <Key> -width 2i } -cleanup { destroy .t.f } -returnCodes error -result {<Key> event doesn't accept "-width" option} @@ -4417,7 +4395,7 @@ test bind-22.128 {HandleEventGenerate: options <Unmap> -window .xyz} -setup { set x {} } -body { bind .t.f <Unmap> "lappend x %W" - event generate .t.f <Unmap> -window .xyz + event generate .t.f <Unmap> -window .xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad window path name ".xyz"} @@ -4430,7 +4408,7 @@ test bind-22.129 {HandleEventGenerate: options <Unmap> -window .t.f} -setup { set x {} } -body { bind .t.f <Unmap> "lappend x %W" - event generate .t.f <Unmap> -window .t.f + event generate .t.f <Unmap> -window .t.f return $x } -cleanup { destroy .t.f @@ -4444,7 +4422,7 @@ test bind-22.130 {HandleEventGenerate: options <Unmap> -window xyz} -setup { set x {} } -body { bind .t.f <Unmap> "lappend x %W" - event generate .t.f <Unmap> -window xyz + event generate .t.f <Unmap> -window xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad window name/identifier "xyz"} @@ -4457,7 +4435,7 @@ test bind-22.131 {HandleEventGenerate: options <Unmap> -window [winfo id .t.f]} set x {} } -body { bind .t.f <Unmap> "lappend x %W" - event generate .t.f <Unmap> -window [winfo id .t.f] + event generate .t.f <Unmap> -window [winfo id .t.f] return $x } -cleanup { destroy .t.f @@ -4471,7 +4449,7 @@ test bind-22.132 {HandleEventGenerate: options <Unmap> -window .t.f} -setup { set x {} } -body { bind .t.f <Unmap> "lappend x %W" - event generate .t.f <Unmap> -window .t.f + event generate .t.f <Unmap> -window .t.f return $x } -cleanup { destroy .t.f @@ -4485,7 +4463,7 @@ test bind-22.133 {HandleEventGenerate: options <Map> -window .t.f} -setup { set x {} } -body { bind .t.f <Map> "lappend x %W" - event generate .t.f <Map> -window .t.f + event generate .t.f <Map> -window .t.f return $x } -cleanup { destroy .t.f @@ -4499,7 +4477,7 @@ test bind-22.134 {HandleEventGenerate: options <Reparent> -window .t.f} -setup { set x {} } -body { bind .t.f <Reparent> "lappend x %W" - event generate .t.f <Reparent> -window .t.f + event generate .t.f <Reparent> -window .t.f return $x } -cleanup { destroy .t.f @@ -4513,7 +4491,7 @@ test bind-22.135 {HandleEventGenerate: options <Configure> -window .t.f} -setup set x {} } -body { bind .t.f <Configure> "lappend x %W" - event generate .t.f <Configure> -window .t.f + event generate .t.f <Configure> -window .t.f return $x } -cleanup { destroy .t.f @@ -4527,7 +4505,7 @@ test bind-22.136 {HandleEventGenerate: options <Gravity> -window .t.f} -setup { set x {} } -body { bind .t.f <Gravity> "lappend x %W" - event generate .t.f <Gravity> -window .t.f + event generate .t.f <Gravity> -window .t.f return $x } -cleanup { destroy .t.f @@ -4541,7 +4519,7 @@ test bind-22.137 {HandleEventGenerate: options <Circulate> -window .t.f} -setup set x {} } -body { bind .t.f <Circulate> "lappend x %W" - event generate .t.f <Circulate> -window .t.f + event generate .t.f <Circulate> -window .t.f return $x } -cleanup { destroy .t.f @@ -4555,7 +4533,7 @@ test bind-22.138 {HandleEventGenerate: options <Key> -window .t.f} -setup { set x {} } -body { bind .t.f <Key> "lappend x %W" - event generate .t.f <Key> -window .t.f + event generate .t.f <Key> -window .t.f } -cleanup { destroy .t.f } -returnCodes error -result {<Key> event doesn't accept "-window" option} @@ -4568,7 +4546,7 @@ test bind-22.139 {HandleEventGenerate: options <Key> -x xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %x" - event generate .t.f <Key> -x xyz + event generate .t.f <Key> -x xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad screen distance "xyz"} @@ -4581,7 +4559,7 @@ test bind-22.140 {HandleEventGenerate: options <Key> -x 2i} -setup { set x {} } -body { bind .t.f <Key> "lappend x %x" - event generate .t.f <Key> -x 2i + event generate .t.f <Key> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4595,7 +4573,7 @@ test bind-22.141 {HandleEventGenerate: options <Button> -x 2i} -setup { set x {} } -body { bind .t.f <Button> "lappend x %x" - event generate .t.f <Button> -x 2i + event generate .t.f <Button> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4609,7 +4587,7 @@ test bind-22.142 {HandleEventGenerate: options <ButtonRelease> -x 2i} -setup { set x {} } -body { bind .t.f <ButtonRelease> "lappend x %x" - event generate .t.f <ButtonRelease> -x 2i + event generate .t.f <ButtonRelease> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4623,7 +4601,7 @@ test bind-22.143 {HandleEventGenerate: options <Motion> -x 2i} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %x" - event generate .t.f <Motion> -x 2i + event generate .t.f <Motion> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4637,7 +4615,7 @@ test bind-22.144 {HandleEventGenerate: options <<Paste>> -x 2i} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %x" - event generate .t.f <<Paste>> -x 2i + event generate .t.f <<Paste>> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4651,7 +4629,7 @@ test bind-22.145 {HandleEventGenerate: options <Enter> -x 2i} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %x" - event generate .t.f <Enter> -x 2i + event generate .t.f <Enter> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4665,7 +4643,7 @@ test bind-22.146 {HandleEventGenerate: options <Expose> -x 2i} -setup { set x {} } -body { bind .t.f <Expose> "lappend x %x" - event generate .t.f <Expose> -x 2i + event generate .t.f <Expose> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4679,7 +4657,7 @@ test bind-22.147 {HandleEventGenerate: options <Configure> -x 2i} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %x" - event generate .t.f <Configure> -x 2i + event generate .t.f <Configure> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4693,7 +4671,7 @@ test bind-22.148 {HandleEventGenerate: options <Gravity> -x 2i} -setup { set x {} } -body { bind .t.f <Gravity> "lappend x %x" - event generate .t.f <Gravity> -x 2i + event generate .t.f <Gravity> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4707,7 +4685,7 @@ test bind-22.149 {HandleEventGenerate: options <Reparent> -x 2i} -setup { set x {} } -body { bind .t.f <Reparent> "lappend x %x" - event generate .t.f <Reparent> -x 2i + event generate .t.f <Reparent> -x 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4721,7 +4699,7 @@ test bind-22.150 {HandleEventGenerate: options <Map> -x 2i} -setup { set x {} } -body { bind .t.f <Map> "lappend x %x" - event generate .t.f <Map> -x 2i + event generate .t.f <Map> -x 2i } -cleanup { destroy .t.f } -returnCodes error -result {<Map> event doesn't accept "-x" option} @@ -4734,7 +4712,7 @@ test bind-22.151 {HandleEventGenerate: options <Key> -y xyz} -setup { set x {} } -body { bind .t.f <Key> "lappend x %y" - event generate .t.f <Key> -y xyz + event generate .t.f <Key> -y xyz } -cleanup { destroy .t.f } -returnCodes error -result {bad screen distance "xyz"} @@ -4747,7 +4725,7 @@ test bind-22.152 {HandleEventGenerate: options <Key> -y 2i} -setup { set x {} } -body { bind .t.f <Key> "lappend x %y" - event generate .t.f <Key> -y 2i + event generate .t.f <Key> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4761,7 +4739,7 @@ test bind-22.153 {HandleEventGenerate: options <Button> -y 2i} -setup { set x {} } -body { bind .t.f <Button> "lappend x %y" - event generate .t.f <Button> -y 2i + event generate .t.f <Button> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4775,7 +4753,7 @@ test bind-22.154 {HandleEventGenerate: options <ButtonRelease> -y 2i} -setup { set x {} } -body { bind .t.f <ButtonRelease> "lappend x %y" - event generate .t.f <ButtonRelease> -y 2i + event generate .t.f <ButtonRelease> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4789,7 +4767,7 @@ test bind-22.155 {HandleEventGenerate: options <Motion> -y 2i} -setup { set x {} } -body { bind .t.f <Motion> "lappend x %y" - event generate .t.f <Motion> -y 2i + event generate .t.f <Motion> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4803,7 +4781,7 @@ test bind-22.156 {HandleEventGenerate: options <<Paste>> -y 2i} -setup { set x {} } -body { bind .t.f <<Paste>> "lappend x %y" - event generate .t.f <<Paste>> -y 2i + event generate .t.f <<Paste>> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4817,7 +4795,7 @@ test bind-22.157 {HandleEventGenerate: options <Enter> -y 2i} -setup { set x {} } -body { bind .t.f <Enter> "lappend x %y" - event generate .t.f <Enter> -y 2i + event generate .t.f <Enter> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4831,7 +4809,7 @@ test bind-22.158 {HandleEventGenerate: options <Expose> -y 2i} -setup { set x {} } -body { bind .t.f <Expose> "lappend x %y" - event generate .t.f <Expose> -y 2i + event generate .t.f <Expose> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4845,7 +4823,7 @@ test bind-22.159 {HandleEventGenerate: options <Configure> -y 2i} -setup { set x {} } -body { bind .t.f <Configure> "lappend x %y" - event generate .t.f <Configure> -y 2i + event generate .t.f <Configure> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4859,7 +4837,7 @@ test bind-22.160 {HandleEventGenerate: options <Gravity> -y 2i} -setup { set x {} } -body { bind .t.f <Gravity> "lappend x %y" - event generate .t.f <Gravity> -y 2i + event generate .t.f <Gravity> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4873,7 +4851,7 @@ test bind-22.161 {HandleEventGenerate: options <Reparent> -y 2i} -setup { set x {} } -body { bind .t.f <Reparent> "lappend x %y" - event generate .t.f <Reparent> -y 2i + event generate .t.f <Reparent> -y 2i expr {[winfo pixels .t.f 2i] eq $x} } -cleanup { destroy .t.f @@ -4887,7 +4865,7 @@ test bind-22.162 {HandleEventGenerate: options <Map> -y 2i} -setup { set x {} } -body { bind .t.f <Map> "lappend x %y" - event generate .t.f <Map> -y 2i + event generate .t.f <Map> -y 2i } -cleanup { destroy .t.f } -returnCodes error -result {<Map> event doesn't accept "-y" option} @@ -4900,7 +4878,7 @@ test bind-22.163 {HandleEventGenerate: options <Key> -xyz 1} -setup { set x {} } -body { bind .t.f <Key> "lappend x %k" - event generate .t.f <Key> -xyz 1 + event generate .t.f <Key> -xyz 1 } -cleanup { destroy .t.f } -returnCodes error -result {bad option "-xyz": must be -when, -above, -borderwidth, -button, -count, -data, -delta, -detail, -focus, -height, -keycode, -keysym, -mode, -override, -place, -root, -rootx, -rooty, -sendevent, -serial, -state, -subwindow, -time, -warp, -width, -window, -x, or -y} @@ -5121,9 +5099,13 @@ test bind-25.3 {ParseEventDescription procedure} -setup { } -cleanup { destroy .t.f } -result a -test bind-25.4 {ParseEventDescription} -body { - bind .t <<Shift-Paste>> {puts hi} - bind .t +test bind-25.4 {ParseEventDescription} -setup { + frame .t.f -class Test -width 150 -height 100 +} -body { + bind .t.f <<Shift-Paste>> {puts hi} + bind .t.f +} -cleanup { + destroy .t.f } -result {<<Shift-Paste>>} # Assorted error cases in event sequence parsing @@ -5457,6 +5439,42 @@ test bind-25.49 {modifier names} -setup { destroy .t.f } -result <Extended-Key-Return> +test bind-25.50 {modifier names} -setup { + frame .t.f -class Test -width 150 -height 100 +} -body { + bind .t.f <Button6-a> foo + bind .t.f +} -cleanup { + destroy .t.f +} -result <B6-Key-a> + +test bind-25.51 {modifier names} -setup { + frame .t.f -class Test -width 150 -height 100 +} -body { + bind .t.f <Button7-a> foo + bind .t.f +} -cleanup { + destroy .t.f +} -result <B7-Key-a> + +test bind-25.52 {modifier names} -setup { + frame .t.f -class Test -width 150 -height 100 +} -body { + bind .t.f <Button8-a> foo + bind .t.f +} -cleanup { + destroy .t.f +} -result <B8-Key-a> + +test bind-25.53 {modifier names} -setup { + frame .t.f -class Test -width 150 -height 100 +} -body { + bind .t.f <Button9-a> foo + bind .t.f +} -cleanup { + destroy .t.f +} -result <B9-Key-a> + test bind-26.1 {event names} -setup { @@ -5790,8 +5808,8 @@ test bind-27.1 {button names} -body { bind .t <Expose-1> foo } -returnCodes error -result {specified button "1" for non-button event} test bind-27.2 {button names} -body { - bind .t <Button-10> foo -} -returnCodes error -result {bad event type or keysym "10"} + bind .t <Button-6> foo +} -returnCodes error -result {bad button number "6"} test bind-27.3 {button names} -setup { frame .t.f -class Test -width 150 -height 100 pack .t.f @@ -5862,62 +5880,6 @@ test bind-27.7 {button names} -setup { } -cleanup { destroy .t.f } -result {<Button-5> {button 5}} -test bind-27.8 {button names} -setup { - frame .t.f -class Test -width 150 -height 100 - pack .t.f - focus -force .t.f - update -} -body { - bind .t.f <Button-6> {lappend x "button 6"} - set x [bind .t.f] - event generate .t.f <Button-6> - event generate .t.f <ButtonRelease-6> - set x -} -cleanup { - destroy .t.f -} -result {<Button-6> {button 6}} -test bind-27.9 {button names} -setup { - frame .t.f -class Test -width 150 -height 100 - pack .t.f - focus -force .t.f - update -} -body { - bind .t.f <Button-7> {lappend x "button 7"} - set x [bind .t.f] - event generate .t.f <Button-7> - event generate .t.f <ButtonRelease-7> - set x -} -cleanup { - destroy .t.f -} -result {<Button-7> {button 7}} -test bind-27.10 {button names} -setup { - frame .t.f -class Test -width 150 -height 100 - pack .t.f - focus -force .t.f - update -} -body { - bind .t.f <Button-8> {lappend x "button 8"} - set x [bind .t.f] - event generate .t.f <Button-8> - event generate .t.f <ButtonRelease-8> - set x -} -cleanup { - destroy .t.f -} -result {<Button-8> {button 8}} -test bind-27.11 {button names} -setup { - frame .t.f -class Test -width 150 -height 100 - pack .t.f - focus -force .t.f - update -} -body { - bind .t.f <Button-9> {lappend x "button 9"} - set x [bind .t.f] - event generate .t.f <Button-9> - event generate .t.f <ButtonRelease-9> - set x -} -cleanup { - destroy .t.f -} -result {<Button-9> {button 9}} test bind-28.1 {keysym names} -body { bind .t <Expose-a> foo @@ -6017,7 +5979,7 @@ test bind-29.1 {Tcl_BackgroundError procedure} -setup { while executing "error "This is a test"" (command bound to event)}} - + test bind-29.2 {Tcl_BackgroundError procedure} -setup { proc do {} { event generate .t.f <Button> @@ -6182,7 +6144,7 @@ test bind-31.7 {virtual event user_data field - unshared, asynch} -setup { destroy .t.f } -result {{} {} {TestUserData >b<}} -test bind-32 {-warp, window was destroyed before the idle callback DoWarp} -setup { +test bind-32.1 {-warp, window was destroyed before the idle callback DoWarp} -setup { frame .t.f pack .t.f focus -force .t.f @@ -6194,7 +6156,511 @@ test bind-32 {-warp, window was destroyed before the idle callback DoWarp} -setu update ; # shall simply not crash } -cleanup { } -result {} +test bind-32.2 {detection of double click should not fail} -setup { + pack [frame .t.f] + focus -force .t.f + bind .t.f <Double-Button-1> { set x "Double" } + update + set x {} +} -body { + event generate .t.f <ButtonPress-1> + event generate .t.f <ButtonRelease-1> + # Simulate a lot of intervening exposure events. The old implementation + # that used an event ring overflowed, and the double click was not detected. + # But new implementation should work properly. + for {set i 0} {$i < 1000} {incr i} { + event generate .t.f <Expose> + } + event generate .t.f <ButtonPress-1> + event generate .t.f <ButtonRelease-1> + set x +} -cleanup { + destroy .t.f +} -result {Double} +test bind-32.3 {should trigger best match of modifier states} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Alt-Control-Key-A> { lappend x "Alt-Control" } + bind .t.f <Shift-Control-Key-A> { lappend x "Shift-Control" } + bind .t.f <Shift-Key-A> { lappend x "Shift" } + event generate .t.f <Alt-Control-Key-A> + set x +} -cleanup { + destroy .t.f +} -result {Shift-Control} +test bind-32.4 {should not trigger Double-1} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Double-1> { set x "Double" } + event generate .t.f <1> -time current + after 1000 + event generate .t.f <1> -time current + set x +} -cleanup { + destroy .t.f +} -result {} +test bind-32.5 {should trigger Quadruple-1} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Quadruple-1> { set x "Quadruple" } + bind .t.f <Triple-1> { set x "Triple" } + bind .t.f <Double-1> { set x "Double" } + bind .t.f <1> { set x "Single" } + # Old implementation triggered "Double", but new implementation + # triggers "Quadruple", the latter behavior conforms to other toolkits. + event generate .t.f <Button-1> -time 0 + event generate .t.f <Button-1> -time 400 + event generate .t.f <Button-1> -time 800 + event generate .t.f <Button-1> -time 1200 + set x +} -cleanup { + destroy .t.f +} -result {Quadruple} +test bind-32.6 {problem with sendevent} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + # Old implementation was losing sendevent value + bind .t.f <FocusIn> { set x "sendevent=%E" } + event generate .t.f <FocusIn> -sendevent 1 + set x +} -cleanup { + destroy .t.f +} -result {sendevent=1} +test bind-32.7 {test sequences} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Double-1> { lappend x "Double" } + bind .t.f <1><1><a> { lappend x "11" } + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <a> + set x +} -cleanup { + destroy .t.f +} -result {Double 11} +test bind-32.8 {test sequences} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <a><1><Double-1><1><a> { lappend x "Double" } + event generate .t.f <a> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <a> + set x +} -cleanup { + destroy .t.f +} -result {Double} +test bind-32.9 {trigger events for modifier keys} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Any-Key> { set x "Key" } + event generate .t.f <KeyPress> -keysym Caps_Lock + set x +} -cleanup { + destroy .t.f +} -result {Key} +test bind-32.10 {reset key state when destroying window} -setup { + set x {} +} -body { + pack [frame .t.f]; update; focus -force .t.f + bind .t.f <Key-A> { set x "A" } + event generate .t.f <KeyPress-A> + event generate .t.f <KeyPress-A> + destroy .t.f; update + pack [frame .t.f]; update; focus -force .t.f + bind .t.f <Key-A> { set x "A" } + bind .t.f <Double-Key-A> { set x "AA" } + event generate .t.f <KeyPress-A> + destroy .t.f + set x +} -result {A} +test bind-32.11 {match detailed virtual} -setup { + pack [frame .t.f -class Test] + focus -force .t.f + update + set x {} +} -body { + event add <<TestControlButton1>> <Control-Button-1> + bind Test <<TestControlButton1>> { set x "Control-Button-1" } + bind Test <Button-1> { set x "Button-1" } + bind .t.f <Button-1> { set x "Button-1" } + event generate .t.f <Control-ButtonPress-1> + set x +} -cleanup { + destroy .t.f + event delete <<TestControlButton1>> + bind Test <Button-1> {#} +} -result {Control-Button-1} +test bind-32.12 {don't detect repetition when window has changed} -setup { + pack [frame .t.f] + pack [frame .t.g] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Button-1> { set x "1" } + bind .t.f <Double-Button-1> { set x "11" } + event generate .t.f <ButtonPress-1> + event generate .t.g <ButtonPress-1> + event generate .t.f <ButtonPress-1> + set x +} -cleanup { + destroy .t.f + destroy .t.g +} -result {1} +test bind-32.13 {don't detect repetition when window has changed} -setup { + pack [frame .t.f] + pack [frame .t.g] + update + set x {} +} -body { + bind .t.f <Key-A> { set x "A" } + bind .t.f <Double-Key-A> { set x "AA" } + focus -force .t.f; event generate .t.f <KeyPress-A> + focus -force .t.g; event generate .t.g <KeyPress-A> + focus -force .t.f; event generate .t.f <KeyPress-A> + set x +} -cleanup { + destroy .t.f + destroy .t.g +} -result {A} +test bind-32.14 {don't detect repetition when window has changed} -setup { + pack [frame .t.f] + pack [frame .t.g] + update + set x {} +} -body { + bind .t.f <ButtonPress-1> { set x "1" } + bind .t.f <Double-ButtonPress-1> { set x "11" } + focus -force .t.f; event generate .t.f <ButtonPress-1> + focus -force .t.g; event generate .t.g <ButtonPress-1> + focus -force .t.f; event generate .t.f <ButtonPress-1> + set x +} -cleanup { + destroy .t.f + destroy .t.g +} -result {1} +test bind-32.15 {reset button state when destroying window} -setup { + set x {} +} -body { + pack [frame .t.f]; update; focus -force .t.f + bind .t.f <ButtonPress-1> { set x "1" } + event generate .t.f <ButtonPress-1> + event generate .t.f <ButtonPress-1> + destroy .t.f; update + pack [frame .t.f]; update; focus -force .t.f + bind .t.f <ButtonPress-1> { set x "1" } + bind .t.f <Double-ButtonPress-1> { set x "11" } + event generate .t.f <ButtonPress-1> + destroy .t.f + set x +} -result {1} +test bind-33.1 {prefer longest match} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <a><1><1> { lappend x "a11" } + bind .t.f <Double-1> { lappend x "Double" } + event generate .t.f <a> + event generate .t.f <1> + event generate .t.f <1> + set x +} -cleanup { + destroy .t.f +} -result {a11} +test bind-33.2 {prefer most specific event} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Double-1> { lappend x "Double" } + bind .t.f <1><1> { lappend x "11" } + event generate .t.f <1> + event generate .t.f <1> + set x +} -cleanup { + destroy .t.f +} -result {Double} +test bind-33.3 {prefer most specific event} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <a><Double-1><a> { lappend x "Double" } + bind .t.f <a><1><1><a> { lappend x "11" } + event generate .t.f <a> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <a> + set x +} -cleanup { + destroy .t.f +} -result {Double} +test bind-33.4 {prefer most specific event} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <1><1> { lappend x "11" } + bind .t.f <Double-1> { lappend x "Double" } + event generate .t.f <1> -time 0 + event generate .t.f <1> -time 1000 + set x +} -cleanup { + destroy .t.f +} -result {11} +test bind-33.5 {prefer most specific event} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <1><1> { lappend x "11" } + bind .t.f <Double-ButtonPress> { lappend x "Double" } + event generate .t.f <1> + event generate .t.f <1> + set x +} -cleanup { + destroy .t.f +} -result {11} +test bind-33.6 {prefer most specific event} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <a><1><1><1><1><a> { lappend x "1111" } + bind .t.f <a><ButtonPress><Double-ButtonPress><ButtonPress><a> { lappend x "Any-Double-Any" } + event generate .t.f <a> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <a> + set x +} -cleanup { + destroy .t.f +} -result {1111} +test bind-33.7 {prefer most specific event} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <ButtonPress-1><a> { lappend x "1" } + bind .t.f <ButtonPress><a> { lappend x "Any" } + event generate .t.f <1> + event generate .t.f <a> + set x +} -cleanup { + destroy .t.f +} -result {1} +test bind-33.8 {prefer most specific event} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Double-ButtonPress-1><a> { lappend x "1" } + bind .t.f <ButtonPress><ButtonPress><a> { lappend x "Any" } + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <a> + set x +} -cleanup { + destroy .t.f +} -result {1} +test bind-33.9 {prefer last in case of homogeneous equal patterns} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <1><2><2><Double-1> { lappend x "first" } + bind .t.f <1><Double-2><1><1> { lappend x "last" } + event generate .t.f <1> + event generate .t.f <2> + event generate .t.f <2> + event generate .t.f <1> + event generate .t.f <1> + set x +} -cleanup { + destroy .t.f +} -result {last} +test bind-33.10 {prefer last in case of homogeneous equal patterns} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <1><Double-2><1><1> { lappend x "first" } + bind .t.f <1><2><2><Double-1> { lappend x "last" } + event generate .t.f <1> + event generate .t.f <2> + event generate .t.f <2> + event generate .t.f <1> + event generate .t.f <1> + set x +} -cleanup { + destroy .t.f +} -result {last} +test bind-33.11 {should prefer most specific} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <2><Double-1><Double-2><Double-1><2><2> { lappend x "first" } + bind .t.f <2><1><1><2><2><Double-1><Double-2> { lappend x "last" } + event generate .t.f <2> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <2> + event generate .t.f <2> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <2> + event generate .t.f <2> + set x +} -cleanup { + destroy .t.f +} -result {first} +test bind-33.12 {prefer last in case of homogeneous equal patterns} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <Control-1><1> { lappend x "first" } + bind .t.f <1><Control-1> { lappend x "last" } + event generate .t.f <Control-1> + event generate .t.f <Control-1> + set x +} -cleanup { + destroy .t.f +} -result {last} +test bind-33.13 {prefer last in case of homogeneous equal patterns} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <1><Control-1> { lappend x "first" } + bind .t.f <Control-1><1> { lappend x "last" } + event generate .t.f <Control-1> + event generate .t.f <Control-1> + set x +} -cleanup { + destroy .t.f + # Old implementation failed, and returned "first", but this was wrong, + # because both bindings are homogeneous equal, so the most recently defined + # must be preferred. +} -result {last} +test bind-33.14 {prefer last in case of homogeneous equal patterns} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <1><ButtonPress><1><ButtonPress> { lappend x "first" } + bind .t.f <ButtonPress><1><ButtonPress><1> { lappend x "last" } + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + set x +} -cleanup { + destroy .t.f +} -result {last} +test bind-33.15 {prefer last in case of homogeneous equal patterns} -setup { + pack [frame .t.f] + focus -force .t.f + update + set x {} +} -body { + bind .t.f <ButtonPress><1><ButtonPress><1> { lappend x "first" } + bind .t.f <1><ButtonPress><1><ButtonPress> { lappend x "last" } + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + event generate .t.f <1> + set x +} -cleanup { + destroy .t.f + # Old implementation failed, and returned "first", but this was wrong, + # because both bindings are homogeneous equal, so the most recently defined + # must be preferred. +} -result {last} + +test bind-34.1 {-warp works relatively to a window} -setup { + toplevel .top +} -body { + # In order to avoid platform-dependent coordinate results due to + # decorations and borders, this test warps the pointer twice + # relatively to a window that moved in the meantime, and checks + # how much the pointer moved + wm geometry .top +200+200 + update + event generate .top <Motion> -x 20 -y 20 -warp 1 + update idletasks ; # DoWarp is an idle callback + set pointerPos1 [winfo pointerxy .t] + wm geometry .top +600+600 + update + event generate .top <Motion> -x 20 -y 20 -warp 1 + update idletasks ; # DoWarp is an idle callback + set pointerPos2 [winfo pointerxy .t] + # from the first warped position to the second one, the mouse + # pointer should have moved the same amount as the window moved + set res 1 + foreach pos1 $pointerPos1 pos2 $pointerPos2 { + if {$pos1 != [expr {$pos2 - 400}]} { + set res 0 + } + } + set res +} -cleanup { + destroy .top +} -result {1} +test bind-34.2 {-warp works relatively to the screen} -setup { +} -body { + # Contrary to bind-32.2, we're directly checking screen coordinates + event generate {} <Motion> -x 20 -y 20 -warp 1 + update idletasks ; # DoWarp is an idle callback + set res [winfo pointerxy .] + event generate {} <Motion> -x 200 -y 200 -warp 1 + update idletasks ; # DoWarp is an idle callback + lappend res {*}[winfo pointerxy .] +} -cleanup { +} -result {20 20 200 200} # cleanup cleanupTests diff --git a/tests/bugs.tcl b/tests/bugs.tcl deleted file mode 100644 index 55e5f84..0000000 --- a/tests/bugs.tcl +++ /dev/null @@ -1,41 +0,0 @@ -# This file is a Tcl script to test out various known bugs that will -# cause Tk to crash. This file ends with .tcl instead of .test to make -# sure it isn't run when you type "source all". We currently are not -# shipping this file with the rest of the source release. -# -# Copyright (c) 1996 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -if {[info procs test] != "test"} { - source defs -} - -test crash-1.0 {imgPhoto} { - image create photo p1 - image create photo p2 - catch {image create photo p2 -file bogus} - p1 copy p2 - label .l -image p1 - destroy .l - set foo "" -} {} - -test crash-1.1 {color} { - . configure -bg rgb:345 - set foo "" -} {} - - - - - - - - - - - - - diff --git a/tests/constraints.tcl b/tests/constraints.tcl index a87499d..c77fb00 100644 --- a/tests/constraints.tcl +++ b/tests/constraints.tcl @@ -190,7 +190,7 @@ testConstraint nonUnixUserInteraction [expr { [testConstraint userInteraction] || ([testConstraint unix] && [testConstraint notAqua]) }] -testConstraint haveDISPLAY [info exists env(DISPLAY)] +testConstraint haveDISPLAY [expr {[info exists env(DISPLAY)] && [testConstraint x11]}] testConstraint altDisplay [info exists env(TK_ALT_DISPLAY)] testConstraint noExceed [expr { ![testConstraint unix] || [catch {font actual "\{xyz"}] diff --git a/tests/ttk/ttk.test b/tests/ttk/ttk.test index d1ac1c2..9f78966 100644 --- a/tests/ttk/ttk.test +++ b/tests/ttk/ttk.test @@ -206,6 +206,7 @@ test ttk-2.8 "bug 3223850: button state disabled during click" -setup { destroy .b set ttk28 {} pack [ttk::button .b -command {set ::ttk28 failed}] + update } -body { bind .b <ButtonPress-1> {after 0 {.b configure -state disabled}} after 1 {event generate .b <ButtonPress-1>} |