summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorpspjuth <peter.spjuth@gmail.com>2019-09-26 21:28:01 (GMT)
committerpspjuth <peter.spjuth@gmail.com>2019-09-26 21:28:01 (GMT)
commit1034267ff97e1ff0f7eb090089af612306dd71b6 (patch)
treee1e6d78ddce5f7cd5741393ac8cfbb663ef39b33 /library
parentb1d79b915cb64b3acfa639e5ba157fbb69902d5b (diff)
downloadtk-1034267ff97e1ff0f7eb090089af612306dd71b6.zip
tk-1034267ff97e1ff0f7eb090089af612306dd71b6.tar.gz
tk-1034267ff97e1ff0f7eb090089af612306dd71b6.tar.bz2
Better cellselection bindings
Diffstat (limited to 'library')
-rw-r--r--library/ttk/treeview.tcl7
1 files changed, 6 insertions, 1 deletions
diff --git a/library/ttk/treeview.tcl b/library/ttk/treeview.tcl
index b2ef7ad..1cfb4fe 100644
--- a/library/ttk/treeview.tcl
+++ b/library/ttk/treeview.tcl
@@ -22,6 +22,7 @@ namespace eval ttk::treeview {
set State(heading) {}
set State(cellAnchor) {}
+ set State(cellAnchorOp) "set"
}
### Widget bindings.
@@ -320,8 +321,11 @@ proc ttk::treeview::select.choose.extended {w item cell} {
BrowseTo $w $item $cell
}
proc ttk::treeview::select.toggle.extended {w item cell} {
+ variable State
if {$cell ne ""} {
$w cellselection toggle [list $cell]
+ set State(cellAnchor) $cell
+ set State(cellAnchorOp) add
} else {
$w selection toggle [list $item]
}
@@ -330,7 +334,7 @@ proc ttk::treeview::select.extend.extended {w item cell} {
variable State
if {$cell ne ""} {
if {$State(cellAnchor) ne ""} {
- $w cellselection set $State(cellAnchor) $cell
+ $w cellselection $State(cellAnchorOp) $State(cellAnchor) $cell
} else {
BrowseTo $w $item $cell
}
@@ -432,6 +436,7 @@ proc ttk::treeview::BrowseTo {w item cell} {
$w see $item
$w focus $item
set State(cellAnchor) $cell
+ set State(cellAnchorOp) set
if {$cell ne ""} {
$w cellselection set [list $cell]
} else {