summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2020-04-18 09:44:32 (GMT)
committerfvogel <fvogelnew1@free.fr>2020-04-18 09:44:32 (GMT)
commit084ab3a3855d26eaef4e15d63fed53ddb256decf (patch)
tree25ab004119ccba28993a46f972882b91b88b78ce
parent0cd29bb998be0312bd2230570521fa68c55fc6fa (diff)
downloadtk-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.c5
-rw-r--r--tests/ttk/treeview.test26
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} {