diff options
author | fvogel <fvogelnew1@free.fr> | 2020-04-18 09:44:32 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2020-04-18 09:44:32 (GMT) |
commit | 084ab3a3855d26eaef4e15d63fed53ddb256decf (patch) | |
tree | 25ab004119ccba28993a46f972882b91b88b78ce | |
parent | 0cd29bb998be0312bd2230570521fa68c55fc6fa (diff) | |
download | tk-084ab3a3855d26eaef4e15d63fed53ddb256decf.zip tk-084ab3a3855d26eaef4e15d63fed53ddb256decf.tar.gz tk-084ab3a3855d26eaef4e15d63fed53ddb256decf.tar.bz2 |
Fix [14188104c3]: ttk::treeview scrollbar not updating. Add test treeview-9.2 revealing this bug, failing before the fix and passing with it. Thanks to cjmcdonald.
-rw-r--r-- | generic/ttk/ttkTreeview.c | 5 | ||||
-rw-r--r-- | tests/ttk/treeview.test | 26 |
2 files changed, 30 insertions, 1 deletions
diff --git a/generic/ttk/ttkTreeview.c b/generic/ttk/ttkTreeview.c index ccc5e2e..715e671 100644 --- a/generic/ttk/ttkTreeview.c +++ b/generic/ttk/ttkTreeview.c @@ -2842,7 +2842,10 @@ static int TreeviewSeeCommand( TtkRedisplayWidget(&tv->core); } } - tv->tree.yscroll.total = CountRows(tv->tree.root) - 1; + TtkScrolled(tv->tree.yscrollHandle, + tv->tree.yscroll.first, + tv->tree.yscroll.last, + CountRows(tv->tree.root) - 1); /* Make sure item is visible: */ diff --git a/tests/ttk/treeview.test b/tests/ttk/treeview.test index c9dcf52..144f6d9 100644 --- a/tests/ttk/treeview.test +++ b/tests/ttk/treeview.test @@ -508,6 +508,32 @@ test treeview-9.1 "scrolling" -setup { destroy .tree } -result {I006} +test treeview-9.2 {scrolling on see command - bug [14188104c3]} -setup { + toplevel .top + ttk::treeview .top.tree -show {} -height 10 -columns {label} \ + -yscrollcommand [list .top.vs set] + ttk::scrollbar .top.vs -command {.top.tree yview} + grid .top.tree -row 0 -column 0 -sticky ns + grid .top.vs -row 0 -column 1 -sticky ns + update + proc setrows {n} { + .top.tree delete [.top.tree children {}] + for {set i 1} {$i <= $n} {incr i} { + .top.tree insert {} end -id row$i \ + -values [list [format "Row %2.2d" $i]] + } + .top.tree see row1 + update idletasks + } +} -body { + setrows 10 + set res [.top.vs get] + setrows 20 + lappend res [expr [lindex [.top.vs get] 1] < 1] +} -cleanup { + destroy .top +} -result {0.0 1.0 1} + ### identify tests: # proc identify* {tv comps args} { |