summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-06-30 17:07:58 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-06-30 17:07:58 (GMT)
commitb1b5c61a7458041a11b7a5920b22689566345256 (patch)
tree24244422ce05e0adb9528fa7d76f3c95ff398341 /library
parent81291da33b1e6f1cab8020cb72dd43a974a0a20e (diff)
parent247c0ea91f30dcb6e0897e0598ddbaff82525184 (diff)
downloadtk-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.tcl116
-rw-r--r--library/demos/ctext.tcl6
-rw-r--r--library/demos/floor.tcl9
-rw-r--r--library/demos/items.tcl15
-rw-r--r--library/demos/widget2
-rw-r--r--library/tk.tcl18
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 --