@@ -2301,6 +2301,11 @@ proc scrollval {D {koff 0}} {
2301
2301
return [ expr int(-($D / $scroll_D0 ) * max(1, $kscroll -$koff ))]
2302
2302
}
2303
2303
2304
+ proc precisescrollval {D {koff 0}} {
2305
+ global kscroll
2306
+ return [ expr (-($D / 10.0) * max(1, $kscroll -$koff ))]
2307
+ }
2308
+
2304
2309
proc bind_mousewheel {} {
2305
2310
global canv cflist ctext
2306
2311
bindall <MouseWheel> {allcanvs yview scroll [ scrollval %D] units}
@@ -2319,6 +2324,25 @@ proc bind_mousewheel {} {
2319
2324
bind $cflist <Alt-MouseWheel> {$cflist yview scroll [ scrollval 5*%D 2] units}
2320
2325
bind $cflist <Alt-Shift-MouseWheel> break
2321
2326
bind $canv <Alt-Shift-MouseWheel> {$canv xview scroll [ scrollval 5*%D] units}
2327
+
2328
+ bindall <TouchpadScroll> {
2329
+ lassign [ tk::PreciseScrollDeltas %D] deltaX deltaY
2330
+ allcanvs yview scroll [ precisescrollval $deltaY ] units
2331
+ }
2332
+ bind $ctext <TouchpadScroll> {
2333
+ lassign [ tk::PreciseScrollDeltas %D] deltaX deltaY
2334
+ $ctext yview scroll [ precisescrollval $deltaY 2] units
2335
+ $ctext xview scroll [ precisescrollval $deltaX 2] units
2336
+ }
2337
+ bind $cflist <TouchpadScroll> {
2338
+ lassign [ tk::PreciseScrollDeltas %D] deltaX deltaY
2339
+ $cflist yview scroll [ precisescrollval $deltaY 2] units
2340
+ }
2341
+ bind $canv <TouchpadScroll> {
2342
+ lassign [ tk::PreciseScrollDeltas %D] deltaX deltaY
2343
+ $canv xview scroll [ precisescrollval $deltaX ] units
2344
+ allcanvs yview scroll [ precisescrollval $deltaY ] units
2345
+ }
2322
2346
}
2323
2347
}
2324
2348
0 commit comments