summaryrefslogtreecommitdiffstats
path: root/library/tk.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'library/tk.tcl')
-rw-r--r--library/tk.tcl13
1 files changed, 13 insertions, 0 deletions
diff --git a/library/tk.tcl b/library/tk.tcl
index 0bb49eb..1345fbf 100644
--- a/library/tk.tcl
+++ b/library/tk.tcl
@@ -844,6 +844,19 @@ if {[tk windowingsystem] eq "x11"} {
if {$::ttk::library ne ""} {
uplevel \#0 [list source -encoding utf-8 $::ttk::library/ttk.tcl]
}
+
+# Helper for smooth scrolling of Canvas widgets
+proc ::tk::CanvasScrollByPixels {canvas deltaX deltaY} {
+ set width [expr {1.0 * [$canvas cget -width]}]
+ set height [expr {1.0 * [$canvas cget -height]}]
+ set X [lindex [$canvas xview] 0]
+ set Y [lindex [$canvas yview] 0]
+ set x [expr {$X - $deltaX / $width}]
+ set y [expr {$Y - $deltaY / $height}]
+ $canvas xview moveto $x
+ $canvas yview moveto $y
+}
+
# Local Variables:
# mode: tcl