diff options
author | fvogel <fvogelnew1@free.fr> | 2016-01-11 13:23:20 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2016-01-11 13:23:20 (GMT) |
commit | ddae56bbd0023f29a24d0529ed4fa0e3820ce7f2 (patch) | |
tree | 87dfd77a94fb45488edde792e3b0735459a1fea7 /library/ttk/entry.tcl | |
parent | 5c01788dc22a4a2f8e6d9e943dc61a5b73b28291 (diff) | |
parent | 4a2efd946fe6674e460172920d097f7329d8e5d9 (diff) | |
download | tk-ddae56bbd0023f29a24d0529ed4fa0e3820ce7f2.zip tk-ddae56bbd0023f29a24d0529ed4fa0e3820ce7f2.tar.gz tk-ddae56bbd0023f29a24d0529ed4fa0e3820ce7f2.tar.bz2 |
merged trunk
Diffstat (limited to 'library/ttk/entry.tcl')
-rw-r--r-- | library/ttk/entry.tcl | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/library/ttk/entry.tcl b/library/ttk/entry.tcl index be2299f..b3ebcbd 100644 --- a/library/ttk/entry.tcl +++ b/library/ttk/entry.tcl @@ -14,7 +14,7 @@ namespace eval ttk { variable State set State(x) 0 - set State(selectMode) char + set State(selectMode) none set State(anchor) 0 set State(scanX) 0 set State(scanIndex) 0 @@ -74,9 +74,9 @@ bind TEntry <Double-ButtonPress-1> { ttk::entry::Select %W %x word } bind TEntry <Triple-ButtonPress-1> { ttk::entry::Select %W %x line } bind TEntry <B1-Motion> { ttk::entry::Drag %W %x } -bind TEntry <B1-Leave> { ttk::Repeatedly ttk::entry::AutoScroll %W } -bind TEntry <B1-Enter> { ttk::CancelRepeat } -bind TEntry <ButtonRelease-1> { ttk::CancelRepeat } +bind TEntry <B1-Leave> { ttk::entry::DragOut %W %m } +bind TEntry <B1-Enter> { ttk::entry::DragIn %W } +bind TEntry <ButtonRelease-1> { ttk::entry::Release %W } bind TEntry <<ToggleSelection>> { %W instate {!readonly !disabled} { %W icursor @%x ; focus %W } @@ -400,14 +400,40 @@ proc ttk::entry::DragTo {w x} { char { CharSelect $w $State(anchor) $cur } word { WordSelect $w $State(anchor) $cur } line { LineSelect $w $State(anchor) $cur } + none { # no-op } } } +## <B1-Leave> binding: +# Begin autoscroll. +# +proc ttk::entry::DragOut {w mode} { + variable State + if {$State(selectMode) ne "none" && $mode eq "NotifyNormal"} { + ttk::Repeatedly ttk::entry::AutoScroll $w + } +} + +## <B1-Enter> binding +# Suspend autoscroll. +# +proc ttk::entry::DragIn {w} { + ttk::CancelRepeat +} + +## <ButtonRelease-1> binding +# +proc ttk::entry::Release {w} { + variable State + set State(selectMode) none + ttk::CancelRepeat ;# suspend autoscroll +} + ## AutoScroll # Called repeatedly when the mouse is outside an entry window # with Button 1 down. Scroll the window left or right, -# depending on where the mouse is, and extend the selection -# according to the current selection mode. +# depending on where the mouse left the window, and extend +# the selection according to the current selection mode. # # TODO: AutoScroll should repeat faster (50ms) than normal autorepeat. # TODO: Need a way for Repeat scripts to cancel themselves. |