diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-06-30 17:07:58 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-06-30 17:07:58 (GMT) |
commit | b1b5c61a7458041a11b7a5920b22689566345256 (patch) | |
tree | 24244422ce05e0adb9528fa7d76f3c95ff398341 /library | |
parent | 81291da33b1e6f1cab8020cb72dd43a974a0a20e (diff) | |
parent | 247c0ea91f30dcb6e0897e0598ddbaff82525184 (diff) | |
download | tk-b1b5c61a7458041a11b7a5920b22689566345256.zip tk-b1b5c61a7458041a11b7a5920b22689566345256.tar.gz tk-b1b5c61a7458041a11b7a5920b22689566345256.tar.bz2 |
Merge 9.0. Streamline some indenting
Diffstat (limited to 'library')
-rw-r--r-- | library/demos/cscroll.tcl | 116 | ||||
-rw-r--r-- | library/demos/ctext.tcl | 6 | ||||
-rw-r--r-- | library/demos/floor.tcl | 9 | ||||
-rw-r--r-- | library/demos/items.tcl | 15 | ||||
-rw-r--r-- | library/demos/widget | 2 | ||||
-rw-r--r-- | library/tk.tcl | 18 |
6 files changed, 52 insertions, 114 deletions
diff --git a/library/demos/cscroll.tcl b/library/demos/cscroll.tcl index 3d14146..0463cec 100644 --- a/library/demos/cscroll.tcl +++ b/library/demos/cscroll.tcl @@ -56,94 +56,50 @@ for {set i 0} {$i < 20} {incr i} { $c bind all <Enter> "scrollEnter $c" $c bind all <Leave> "scrollLeave $c" $c bind all <Button-1> "scrollButton $c" -if {([tk windowingsystem] eq "aqua") && ![package vsatisfies [package provide tk] 8.7-]} { - bind $c <Button-3> "$c scan mark %x %y" - bind $c <B3-Motion> "$c scan dragto %x %y" - bind $c <MouseWheel> { - %W yview scroll [expr {-%D}] units - } - bind $c <Option-MouseWheel> { - %W yview scroll [expr {-10*%D}] units - } - bind $c <Shift-MouseWheel> { - %W xview scroll [expr {-%D}] units - } - bind $c <Shift-Option-MouseWheel> { - %W xview scroll [expr {-10*%D}] units - } -} else { - bind $c <Button-2> "$c scan mark %x %y" - bind $c <B2-Motion> "$c scan dragto %x %y" - # We must make sure that positive and negative movements are rounded - # equally to integers, avoiding the problem that - # (int)1/-30 = -1, - # but - # (int)-1/-30 = 0 - # The following code ensure equal +/- behaviour. - bind $c <MouseWheel> { - if {%D >= 0} { - %W yview scroll [expr {%D/-30}] units - } else { - %W yview scroll [expr {(%D-29)/-30}] units - } - } - bind $c <Option-MouseWheel> { - if {%D >= 0} { - %W yview scroll [expr {%D/-3}] units - } else { - %W yview scroll [expr {(%D-2)/-3}] units - } - } - bind $c <Shift-MouseWheel> { - if {%D >= 0} { - %W xview scroll [expr {%D/-30}] units - } else { - %W xview scroll [expr {(%D-29)/-30}] units - } - } - bind $c <Shift-Option-MouseWheel> { - if {%D >= 0} { - %W xview scroll [expr {%D/-3}] units - } else { - %W xview scroll [expr {(%D-2)/-3}] units - } - } - bind $c <TouchpadScroll> { - lassign [tk::PreciseScrollDeltas %D] deltaX deltaY - if {$deltaX != 0 || $deltaY != 0} { - tk::ScrollByPixels %W $deltaX $deltaY - } +bind $c <Button-2> "$c scan mark %x %y" +bind $c <B2-Motion> "$c scan dragto %x %y" + +# We must make sure that positive and negative movements are rounded +# equally to integers, avoiding the problem that +# (int)1/-40 = -1, +# but +# (int)-1/-40 = 0 +# The following code ensures equal +/- behaviour. +bind $c <MouseWheel> { + if {%D >= 0} { + %W yview scroll [expr {%D/-40}] units + } else { + %W yview scroll [expr {(%D-39)/-40}] units } } - -if {[tk windowingsystem] eq "x11" && ![package vsatisfies [package provide tk] 8.7-]} { - # Support for mousewheels on Linux/Unix commonly comes through mapping - # the wheel to the extended buttons. If you have a mousewheel, find - # Linux configuration info at: - # https://linuxreviews.org/HOWTO_change_the_mouse_speed_in_X - bind $c <Button-4> { - if {!$tk_strictMotif} { - %W yview scroll -5 units - } +bind $c <Option-MouseWheel> { + if {%D >= 0} { + %W yview scroll [expr {%D/-12}] units + } else { + %W yview scroll [expr {(%D-11)/-12}] units } - bind $c <Shift-Button-4> { - if {!$tk_strictMotif} { - %W xview scroll -5 units - } +} +bind $c <Shift-MouseWheel> { + if {%D >= 0} { + %W xview scroll [expr {%D/-40}] units + } else { + %W xview scroll [expr {(%D-39)/-40}] units } - bind $c <Button-5> { - if {!$tk_strictMotif} { - %W yview scroll 5 units - } +} +bind $c <Shift-Option-MouseWheel> { + if {%D >= 0} { + %W xview scroll [expr {%D/-12}] units + } else { + %W xview scroll [expr {(%D-11)/-12}] units } - bind $c <Shift-Button-5> { - if {!$tk_strictMotif} { - %W xview scroll 5 units - } +} +bind $c <TouchpadScroll> { + lassign [tk::PreciseScrollDeltas %D] deltaX deltaY + if {$deltaX != 0 || $deltaY != 0} { + tk::ScrollByPixels %W $deltaX $deltaY } } - proc scrollEnter canvas { global oldFill set id [$canvas find withtag current] diff --git a/library/demos/ctext.tcl b/library/demos/ctext.tcl index db78a20..57fbb13 100644 --- a/library/demos/ctext.tcl +++ b/library/demos/ctext.tcl @@ -50,11 +50,7 @@ $c bind text <Return> "textInsert $c \\n" $c bind text <Control-h> "textBs $c" $c bind text <BackSpace> "textBs $c" $c bind text <Delete> "textDel $c" -if {[tk windowingsystem] eq "aqua" && ![package vsatisfies [package provide tk] 8.7-]} { - $c bind text <Button-3> "textPaste $c @%x,%y" -} else { - $c bind text <Button-2> "textPaste $c @%x,%y" -} +$c bind text <Button-2> "textPaste $c @%x,%y" # Next, create some items that allow the text's anchor position # to be edited. diff --git a/library/demos/floor.tcl b/library/demos/floor.tcl index 3cec5de..4bf3ce4 100644 --- a/library/demos/floor.tcl +++ b/library/demos/floor.tcl @@ -1372,13 +1372,8 @@ $c bind floor2 <Button-1> "floorDisplay $c 2" $c bind floor3 <Button-1> "floorDisplay $c 3" $c bind room <Enter> "newRoom $c" $c bind room <Leave> {set currentRoom ""} -if {[tk windowingsystem] eq "aqua" && ![package vsatisfies [package provide tk] 8.7-]} { - bind $c <Button-3> "$c scan mark %x %y" - bind $c <B3-Motion> "$c scan dragto %x %y" -} else { - bind $c <Button-2> "$c scan mark %x %y" - bind $c <B2-Motion> "$c scan dragto %x %y" -} +bind $c <Button-2> "$c scan mark %x %y" +bind $c <B2-Motion> "$c scan dragto %x %y" bind $c <Destroy> "unset currentRoom" set currentRoom "" trace add variable currentRoom write "roomChanged $c" diff --git a/library/demos/items.tcl b/library/demos/items.tcl index 56080fd..7b45cf5 100644 --- a/library/demos/items.tcl +++ b/library/demos/items.tcl @@ -185,17 +185,10 @@ $c create text 28.5c 17.4c -text Scale: -anchor s $c bind item <Enter> "itemEnter $c" $c bind item <Leave> "itemLeave $c" -if {[tk windowingsystem] eq "aqua" && ![package vsatisfies [package provide tk] 8.7-]} { - bind $c <Button-2> "itemMark $c %x %y" - bind $c <B2-Motion> "itemStroke $c %x %y" - bind $c <Button-3> "$c scan mark %x %y" - bind $c <B3-Motion> "$c scan dragto %x %y" -} else { - bind $c <Button-2> "$c scan mark %x %y" - bind $c <B2-Motion> "$c scan dragto %x %y" - bind $c <Button-3> "itemMark $c %x %y" - bind $c <B3-Motion> "itemStroke $c %x %y" -} +bind $c <Button-2> "$c scan mark %x %y" +bind $c <B2-Motion> "$c scan dragto %x %y" +bind $c <Button-3> "itemMark $c %x %y" +bind $c <B3-Motion> "itemStroke $c %x %y" bind $c <<NextChar>> "itemsUnderArea $c" bind $c <Button-1> "itemStartDrag $c %x %y" bind $c <B1-Motion> "itemDrag $c %x %y" diff --git a/library/demos/widget b/library/demos/widget index 62ed3d6..d2dff1c 100644 --- a/library/demos/widget +++ b/library/demos/widget @@ -10,7 +10,7 @@ exec wish "$0" ${1+"$@"} # separate ".tcl" files is this directory, which are sourced by this script as # needed. -package require tk +package require tk 8.7- package require msgcat destroy {*}[winfo children .] diff --git a/library/tk.tcl b/library/tk.tcl index f12470f..7741fd0 100644 --- a/library/tk.tcl +++ b/library/tk.tcl @@ -558,18 +558,16 @@ proc ::tk::PreciseScrollDeltas {dxdy} { return [list $deltaX $deltaY] } -# Helper for smooth scrolling of widgets that support xview moveto, -# yview moveto, height and width. +## Helper for smooth scrolling of widgets that support xview moveto and +## yview moveto. proc ::tk::ScrollByPixels {w deltaX deltaY} { - set width [expr {1.0 * [$w cget -width]}] - set height [expr {1.0 * [$w cget -height]}] - set X [lindex [$w xview] 0] - set Y [lindex [$w yview] 0] - set x [expr {$X - $deltaX / $width}] - set y [expr {$Y - $deltaY / $height}] - $w xview moveto $x - $w yview moveto $y + set fracX [lindex [$w xview] 0] + set fracY [lindex [$w yview] 0] + set width [expr {1.0 * [winfo width $w]}] + set height [expr {1.0 * [winfo height $w]}] + $w xview moveto [expr {$fracX - $deltaX / $width}] + $w yview moveto [expr {$fracY - $deltaY / $height}] } # ::tk::TabToWindow -- |