From b2131c84660d210c0da2bdf89fb44c9d67fb224e Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 28 Jun 2013 11:17:14 +0000 Subject: Bug [2501278]: ttk::scale keyboard binding problem FossilOrigin-Name: 3fec32a981aa335f1c3628308c691c45029b6d3f --- ChangeLog | 5 +++++ library/ttk/scale.tcl | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d3b46a7..ef332bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-06-28 Jan Nijtmans + + * library/ttk/scale.tcl: [Bug 2501278]: ttk::scale keyboard binding + problem. + 2012-06-07 Jan Nijtmans * win/tkWinDialog.c: [Bug 1913750]: tk_chooseDirectory -initialdir diff --git a/library/ttk/scale.tcl b/library/ttk/scale.tcl index 23d08ed..4a534de 100644 --- a/library/ttk/scale.tcl +++ b/library/ttk/scale.tcl @@ -39,7 +39,7 @@ proc ttk::scale::Press {w x y} { switch -glob -- [$w identify $x $y] { *track - *trough { - set inc [expr {([$w get $x $y] <= [$w get]) ? -1 : 1}] + set inc [expr {([$w get $x $y] <= [$w get]) ^ ([$w cget -from] > [$w cget -to]) ? -1 : 1}] ttk::Repeatedly Increment $w $inc } *slider { @@ -84,5 +84,8 @@ proc ttk::scale::Release {w x y} { proc ttk::scale::Increment {w delta} { if {![winfo exists $w]} return + if {([$w cget -from] > [$w cget -to])} { + set delta [expr {-$delta}] + } $w set [expr {[$w get] + $delta}] } -- cgit v0.12