summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-08-29 19:33:55 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-08-29 19:33:55 (GMT)
commit405efb77f1e112a07406b05b1dfca6b8622cc9c9 (patch)
treec8326377193f041b92aa0cb98a6291c79ec88d7e /tests
parent68fc0a0ef4781d53802b28f569935acedc875a92 (diff)
parentb4c4a98400bc483fdc35555c62cb4de6d2814bdf (diff)
downloadtk-405efb77f1e112a07406b05b1dfca6b8622cc9c9.zip
tk-405efb77f1e112a07406b05b1dfca6b8622cc9c9.tar.gz
tk-405efb77f1e112a07406b05b1dfca6b8622cc9c9.tar.bz2
Merge trunk
Diffstat (limited to 'tests')
-rw-r--r--tests/bind.test958
-rw-r--r--tests/bugs.tcl41
-rw-r--r--tests/constraints.tcl2
-rw-r--r--tests/ttk/ttk.test1
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>}