summaryrefslogtreecommitdiffstats
path: root/tests/scrollbar.test
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2016-05-20 15:36:32 (GMT)
committerfvogel <fvogelnew1@free.fr>2016-05-20 15:36:32 (GMT)
commit9fa60a52311330031fc9c79d6169fa8683e117c1 (patch)
tree636ba32f57be66facc07eedfea0b5bbaedee21c6 /tests/scrollbar.test
parentcfbc3c771ffeb37035a441691dc40eceb3945542 (diff)
parent2f150c8d18e576998e9d30ac08c562a1365b3051 (diff)
downloadtk-9fa60a52311330031fc9c79d6169fa8683e117c1.zip
tk-9fa60a52311330031fc9c79d6169fa8683e117c1.tar.gz
tk-9fa60a52311330031fc9c79d6169fa8683e117c1.tar.bz2
Fixed [011706ec42] for the scrollbar case
Diffstat (limited to 'tests/scrollbar.test')
-rw-r--r--tests/scrollbar.test37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/scrollbar.test b/tests/scrollbar.test
index 6da01ea..2a9fb4f 100644
--- a/tests/scrollbar.test
+++ b/tests/scrollbar.test
@@ -662,6 +662,43 @@ test scrollbar-10.2 {<MouseWheel> event on scrollbar} -constraints {win|unix} -s
destroy .t .s
} -result {1.4}
+test scrollbar-11.1 {bug fix: [011706ec42] Scrollbar unsafe wrt widget destruction} -body {
+ proc destroy_scrollbar {} {
+ if {[winfo exists .top.s]} {
+ destroy .top.s
+ }
+ }
+ toplevel .top
+ scrollbar .top.s
+ bind .top.s <2> {destroy_scrollbar}
+ pack .top.s
+ focus -force .top.s
+ update
+ event generate .top.s <2>
+ update ; # shall not trigger error invalid command name ".top.s"
+} -cleanup {
+ destroy .top.s .top
+} -result {}
+test scrollbar-11.2 {bug fix: [011706ec42] Scrollbar unsafe wrt widget destruction} -body {
+ proc destroy_scrollbar {{y 0}} {
+ if {[winfo exists .top.s]} {
+ destroy .top.s
+ }
+ }
+ toplevel .top
+ wm minsize .top 50 400
+ update
+ scrollbar .top.s
+ bind .top.s <2> {after idle destroy_scrollbar}
+ pack .top.s -expand true -fill y
+ focus -force .top.s
+ update
+ event generate .top.s <2> -x 2 -y [expr {[winfo height .top.s] / 2}]
+ update ; # shall not trigger error invalid command name ".top.s"
+} -cleanup {
+ destroy .top.s .top
+} -result {}
+
catch {destroy .s}
catch {destroy .t}