--- scid.orig	2026-04-30 19:31:11.000000000 +1000
+++ scid	2026-04-30 19:35:39.000000000 +1000
@@ -112174,7 +112174,7 @@
   }
 }
 
-bind TNotebook <ButtonPress-3> {::docking::ctx_menu %W %X %Y}
+bind TNotebook <ButtonPress-2> {::docking::ctx_menu %W %X %Y}
 bind TNotebook <<NotebookTabChanged>> {::docking::tabChanged %W}
 
 proc ::docking::ctx_cmd {path anchor} {
@@ -114634,7 +114634,7 @@
         set tagName m
         # Too many bindings!
         $w tag bind $moveTag <ButtonPress-1> [list ::pgn::move $moveTag]
-        $w tag bind $moveTag <ButtonPress-3> [list ::pgn::move $moveTag]
+        $w tag bind $moveTag <ButtonPress-2> [list ::pgn::move $moveTag]
         $w tag bind $moveTag <Any-Enter> [list u1 $w $moveTag]
         $w tag bind $moveTag <Any-Leave> [list u0 $w $moveTag]
       } elseif {[strIsPrefix {a } $tagName]} {
@@ -114702,7 +114702,7 @@
         set glCommand "::game::LoadMenu $w [sc_base current] $gnum %X %Y"
         $w tag bind $gameTag <ButtonPress-1> $glCommand
         if {$w != ".crosstabWin.f.text"} {
-          $w tag bind $gameTag <ButtonPress-3> $glCommand
+          $w tag bind $gameTag <ButtonPress-2> $glCommand
         }
         # right-click browses game, but too annoying in crosstable
         # $w tag bind $gameTag <ButtonPress-3>  "::gbrowser::new [sc_base current] $gnum"
@@ -114725,7 +114725,7 @@
         }
         $w tag bind $commentTag <ButtonPress-1> "::pgn::comment $commentTag"
         # needed for ::pgn::deleteComment to work
-        $w tag bind $commentTag <ButtonPress-3> "::pgn::move $commentTag"
+        $w tag bind $commentTag <ButtonPress-2> "::pgn::move $commentTag"
 
         $w tag bind $commentTag <Any-Enter> [list u1 $w $commentTag]
         $w tag bind $commentTag <Any-Leave> [list u0 $w $commentTag]
@@ -115996,7 +115996,7 @@
 
     $t tag bind f$pathtag <Double-Button-1> "::file::Open [list $fullpath] $w"
     # Bind right button to popup a contextual menu:
-    $t tag bind f$pathtag <ButtonPress-3> "::file::finder::contextMenu .finder.t.text [list $fullpath] %X %Y"
+    $t tag bind f$pathtag <ButtonPress-2> "::file::finder::contextMenu .finder.t.text [list $fullpath] %X %Y"
 
     $t tag bind f$pathtag <Any-Enter> "$t tag configure [list f$pathtag] -background $hc"
     $t tag bind f$pathtag <Any-Leave> "$t tag configure [list f$pathtag] -background {}"
@@ -117374,7 +117374,7 @@
     $w.text.edit add command -label "Cut"  -command "tk_textCut $w.text"
     $w.text.edit add command -label "Copy" -command "tk_textCopy $w.text"
     $w.text.edit add command -label "Paste" -command "tk_textPaste $w.text"
-    bind $w.text <ButtonPress-3> "tk_popup $w.text.edit %X %Y"
+    bind $w.text <ButtonPress-2> "tk_popup $w.text.edit %X %Y"
 
     bind $w <F1> { helpWindow EPD }
 
@@ -121259,8 +121259,8 @@
 
   for {set i 0} {$i < 64} {incr i} {
     $sbd.bd bind p$i <ButtonPress-1> "set ::selectedSq $i ; ::board::setDragSquare $sbd $i"
-    $sbd.bd bind p$i <ButtonPress-2> "copyBoardPiece $i"
-    $sbd.bd bind p$i <ButtonPress-3> "setupBoardPiece $i 1"
+    $sbd.bd bind p$i <ButtonPress-3> "copyBoardPiece $i"
+    $sbd.bd bind p$i <ButtonPress-2> "setupBoardPiece $i 1"
   }
   bind $sbd.bd <B1-Motion> "::board::dragPiece $sbd %x %y"
   bind $sbd.bd <ButtonRelease-1> "releaseSetupSquare $sbd %x %y"
@@ -122811,11 +122811,11 @@
 
   ::windows::gamelist::configFont
 
-  bind $w.tree <Button-2> {
+  bind $w.tree <Button-3> {
     set ::windows::gamelist::showButtons [expr {!$::windows::gamelist::showButtons}]
     ::windows::gamelist::displayButtons
   }
-  bind $w.tree <Button-3> {
+  bind $w.tree <Button-2> {
     ::windows::gamelist::Popup %W %x %y %X %Y
   }
   $w.tree tag bind click2 <Double-Button-1> {::windows::gamelist::Load [%W set [%W focus] Number]}
@@ -122972,7 +122972,7 @@
     }
   }
   # Quick save is right click
-  bind $w.b.save <Button-3> {
+  bind $w.b.save <Button-2> {
     if {[%W cget -state] != "disabled"} {gameQuickSave}
   }
 
@@ -124145,7 +124145,7 @@
     bind $g.bd <f> "$g.b.flip invoke"
     bind $g.bd <Control-Return>  "$g.b.load invoke"
     bind $g.bd.bd <Double-Button-1> "$g.b.load invoke"
-    bind $g.bd.bd <Button-3> "::game::LoadMenu $g.bd $base $game %X %Y"
+    bind $g.bd.bd <Button-2> "::game::LoadMenu $g.bd $base $game %X %Y"
     # Have to zero these bindings to stop them being processed (again) as per above
     bind $g.bd <Control-Right> " "
     bind $g.bd <Control-Left>  " "
@@ -124466,11 +124466,11 @@
 
 
     # # Middle button popups a PGN board
-    bind $w.text <ButtonPress-2> "::pgn::ShowBoard $w.text %x %y %X %Y"
+    bind $w.text <ButtonPress-3> "::pgn::ShowBoard $w.text %x %y %X %Y"
     # bind $w <ButtonRelease-2> ::pgn::HideBoard
 
     # Right button draws context menu
-    bind $w <ButtonPress-3> "::pgn::contextMenu $w.text"
+    bind $w <ButtonPress-2> "::pgn::contextMenu $w.text"
 
     if {$::macOS} {
       bind .pgnWin <Control-Button-1> {event generate .pgnWin <Button-3> -x %x -y %y -button 3}
@@ -126043,9 +126043,9 @@
         [list InsertMark $board $square]]
     ::board::bind $board $square <ButtonRelease-1> [namespace code \
         [list ButtonReleased $board %b %x %y]]
-    #::board::bind $board $square <ButtonPress-2> [namespace code \
+    #::board::bind $board $square <ButtonPress-3> [namespace code \
     #        [list InsertMark $board [expr {$square + 64}]]]
-    ::board::bind $board $square <ButtonPress-3> [namespace code \
+    ::board::bind $board $square <ButtonPress-2> [namespace code \
         [list InsertMark $board [expr {$square + 64}]]]
   }
   bindControlMouseWheelResizeBoard .commentWin $insertBoard.board
@@ -127139,7 +127139,7 @@
   }
 
   # middle button toggles buttonbar
-  bind $w.f.tl <Button-2> "$w.menu.opt invoke \"[tr TreeOptShowFrame]\""
+  bind $w.f.tl <Button-3> "$w.menu.opt invoke \"[tr TreeOptShowFrame]\""
   bindWheeltoFixed $w.f.tl
 
   bind $w <Configure> "if {\"%W\" == \"$w\"} {recordWinSize $w}"
@@ -127676,8 +127676,8 @@
       if { $maskFile != {}} {
         ### Bind right button to popup a contextual menu
         # todo: Only display full menu if move is in mask
-        $w.f.tl tag bind tagclick$i <ButtonPress-3> "::tree::mask::contextMenu 0 $w.f.tl $move %x %y %X %Y"
-        $w.f.tl tag bind tagclick$i <Control-ButtonPress-3> "::tree::mask::contextMenu 1 $w.f.tl $move %x %y %X %Y"
+        $w.f.tl tag bind tagclick$i <ButtonPress-2> "::tree::mask::contextMenu 0 $w.f.tl $move %x %y %X %Y"
+        $w.f.tl tag bind tagclick$i <Control-ButtonPress-2> "::tree::mask::contextMenu 1 $w.f.tl $move %x %y %X %Y"
       }
     }
 
@@ -127744,8 +127744,8 @@
       }
 
       $w.f.tl tag bind tagclick$idx <Button-1> "[list ::tree::selectCallback $baseNumber $maskmove] ; break"
-      $w.f.tl tag bind tagclick$idx <ButtonPress-3> "::tree::mask::contextMenu 0 $w.f.tl $maskmove %x %y %X %Y"
-      $w.f.tl tag bind tagclick$idx <Control-ButtonPress-3> "::tree::mask::contextMenu 1 $w.f.tl $maskmove %x %y %X %Y"
+      $w.f.tl tag bind tagclick$idx <ButtonPress-2> "::tree::mask::contextMenu 0 $w.f.tl $maskmove %x %y %X %Y"
+      $w.f.tl tag bind tagclick$idx <Control-ButtonPress-2> "::tree::mask::contextMenu 1 $w.f.tl $maskmove %x %y %X %Y"
 
     if {$::tree::mask::showMarkers} {
       # Markers
@@ -128148,7 +128148,7 @@
     # this font is working, but doesn't affect how many entries fit on a screen, and isn't enabled
     $w.tree tag configure treefont -font font_Regular
 
-    bind $w.tree <Button-3> "::tree::bestPopup $baseNumber %W %x %y %X %Y"
+    bind $w.tree <Button-2> "::tree::bestPopup $baseNumber %W %x %y %X %Y"
 
     $w.tree tag bind click2 <Double-Button-1> "
       if {\[sc_base current\] != $baseNumber} {
@@ -130265,7 +130265,7 @@
 
   standardShortcuts $w
 
-  bind $w <Button-3> {tk_popup .crosstabWin.menu %X %Y}
+  bind $w <Button-2> {tk_popup .crosstabWin.menu %X %Y}
 
   bind $w <F1>       "helpWindow Crosstable"
   bind $w <Escape>   ".crosstabWin.b.cancel invoke"
@@ -132015,7 +132015,7 @@
     foreach win {"" .img .name} {
       bind $f$win <ButtonPress-1> [list ::windows::switcher::pressMouseEvent $i]
       bind $f$win <ButtonRelease-1> [list ::windows::switcher::releaseMouseEvent $i %X %Y %W %R %S]
-      bind $f$win <ButtonPress-2> ::windows::switcher::toggleicons
+      bind $f$win <ButtonPress-3> ::windows::switcher::toggleicons
     }
 
     menu $f.menu -tearoff 0
@@ -132067,7 +132067,7 @@
       configMenuText $f.menu.show 1 TreeFileBest $::language
 
     foreach win {"" .img .name} {
-      bind $f$win <ButtonPress-3> "tk_popup $f.menu %X %Y"
+      bind $f$win <ButtonPress-2> "tk_popup $f.menu %X %Y"
     }
   }
 
@@ -135964,7 +135964,7 @@
   $f.text.edit add command -label "Cut" -command "tk_textCut $f.text"
   $f.text.edit add command -label "Copy" -command "tk_textCopy $f.text"
   $f.text.edit add command -label "Paste" -command "tk_textPaste $f.text"
-  bind $f.text <ButtonPress-3> "tk_popup $f.text.edit %X %Y"
+  bind $f.text <ButtonPress-2> "tk_popup $f.text.edit %X %Y"
 
   set text $w.message.text
   # $text insert end "Hi $name,\n\n"
@@ -136227,7 +136227,7 @@
   $edit.text.rmenu add command -label "Copy" -command "tk_textCopy $edit.text"
   $edit.text.rmenu add command -label "Paste" -command "tk_textPaste $edit.text"
   $edit.text.rmenu add command -label "Select all" -command "$edit.text tag add sel 0.0 end-1c"
-  bind $edit.text <ButtonPress-3> "tk_popup $edit.text.rmenu %X %Y"
+  bind $edit.text <ButtonPress-2> "tk_popup $edit.text.rmenu %X %Y"
 
   text $pane.err.text -height 6 -width 75 -wrap word \
       -yscroll "$pane.err.scroll set"
@@ -136769,7 +136769,7 @@
   $w.text.bd configure -relief solid -borderwidth 1
   for {set i 0} {$i < 63} {incr i} {
     ::board::bind $w.text.bd $i <ButtonPress-1> ::optable::flipBoard
-    ::board::bind $w.text.bd $i <ButtonPress-3> ::optable::resizeBoard
+    ::board::bind $w.text.bd $i <ButtonPress-2> ::optable::resizeBoard
   }
   ::board::update $w.text.bd [sc_pos board]
   $w.b.exclude.m delete 0 end
@@ -138854,7 +138854,7 @@
     $w.menu add command -label FileClose -command "destroy $w"
     menu $w.menu.players -tearoff 1
     playerInfoConfigMenus
-    bind $w <Button-3> "tk_popup $w.menu.players %X %Y"
+    bind $w <Button-2> "tk_popup $w.menu.players %X %Y"
 
     pack [frame $w.b] -side bottom -expand 1 -fill x -pady 0 -padx 5
 
@@ -139483,7 +139483,7 @@
   checkbutton $w.buttons3.lowpriority -variable analysis(lowPriority) -textvar tr(LowPriority)
 
   # Right-click inits engine but doesn't start
-  bind $w.buttons2.start <Button-3> {
+  bind $w.buttons2.start <Button-2> {
     makeAnalysisWin [lindex [.enginelist.list.list curselection] 0] nostart
   }
 
@@ -141406,16 +141406,16 @@
 
   button $w.b.move -image tb_addmove -command "makeAnalysisMove $n" -relief $relief
   ::utils::tooltip::Set $w.b.move $tr(AddMove)
-  bind $w.b.move <Button-3> "addAnalysisScore $n"
+  bind $w.b.move <Button-2> "addAnalysisScore $n"
 
   button $w.b.line -image tb_addvar -command "addAnalysisVariation $n" -relief $relief
   ::utils::tooltip::Set $w.b.line $tr(AddVariation)
   # right click adds second line
-  bind $w.b.line <Button-3> "addAllVariations $n 1"
+  bind $w.b.line <Button-2> "addAllVariations $n 1"
 
   button $w.b.alllines -image tb_addallvars -command "addAllVariations $n" -relief $relief
   ::utils::tooltip::Set $w.b.alllines $tr(AddAllVariations)
-  bind $w.b.alllines <Button-3> "addAllVariations $n 2"
+  bind $w.b.alllines <Button-2> "addAllVariations $n 2"
 
   spinbox $w.b.multipv -from 1 -to 8 -increment 1 -textvar analysis(multiPVCount$n) -justify center \
     -width 2 -font font_Small -command "changePVSize $n"
@@ -141434,7 +141434,7 @@
     initAnalysisBoard $n
   "
   ::utils::tooltip::Set $w.b.showboard $tr(ShowAnalysisBoard)
-  bind $w.b.showboard <Button-3> "setBoardEngine $n"
+  bind $w.b.showboard <Button-2> "setBoardEngine $n"
 
   button $w.b.exclude -image tb_exclude -command "excludeMovePopup $n" -relief $relief
   ::utils::tooltip::Set $w.b.exclude $tr(ExcludeMove)
@@ -141471,7 +141471,7 @@
   button $w.b.help -image tb_help  -command {helpWindow Analysis} -relief $relief
   ::utils::tooltip::Set $w.b.help $tr(Help)
 
-  bind $w.b.help <ButtonPress-3> "engineShowLog $n"
+  bind $w.b.help <ButtonPress-2> "engineShowLog $n"
 
   if {$::macOS} {
     $w.b.startStop configure -width 30 -height 30
@@ -141530,7 +141530,7 @@
   pack $w.hist.ybar -side right -fill y
   pack $w.hist.xbar -side bottom -expand 0 -fill x
   pack $w.hist.text -side left -expand 1 -fill both
-  bind $w.hist.text <ButtonPress-2> "toggleMovesDisplay $n"
+  bind $w.hist.text <ButtonPress-3> "toggleMovesDisplay $n"
   $w.text tag configure blue -foreground blue ; # this only seems used in toggleAutomove ???
 
   if {$::enableForeground == 1} {
@@ -143715,7 +143715,7 @@
   }
 
   bind .t <ButtonRelease-1> {destroy .t}
-  bind .t <ButtonRelease-3> {destroy .t}
+  bind .t <ButtonRelease-2> {destroy .t}
   bind .t <Leave> {if {"%W" == ".t"} {destroy .t}}
   bind $w <Destroy> +[list destroy .t]
 
@@ -145461,7 +145461,7 @@
   bind $w <F1> {helpWindow Graphs Filter}
   standardShortcuts $w
   # bind $w.c <1> tools::graphs::filter::Switch
-  bind $w.c <3> ::tools::graphs::filter::Refresh
+  bind $w.c <2> ::tools::graphs::filter::Refresh
   bind $w <Escape> "destroy $w"
 
   foreach {name text} {decade Decade year Year elo Rating move moves} {
@@ -145753,11 +145753,11 @@
       ::utils::graph::redraw score
       recordWinSize .sgraph
     }
-    bind $w.c <ButtonPress-3> ::tools::graphs::score::Refresh
+    bind $w.c <ButtonPress-2> ::tools::graphs::score::Refresh
     bind $w.c <ButtonPress-1> "if {!\[winfo viewable $w.menu.options\]} {::tools::graphs::score::Move %x %y}"
-    bind $w.c <ButtonPress-2> {::tools::graphs::score::ShowBoard %x %y %X %Y}
-    # bind $w.c <ButtonRelease-2> ::pgn::HideBoard
-    $w.c bind title <ButtonPress-3> "tk_popup $w.menu.options %X %Y"
+    bind $w.c <ButtonPress-3> {::tools::graphs::score::ShowBoard %x %y %X %Y}
+    # bind $w.c <ButtonRelease-3> ::pgn::HideBoard
+    $w.c bind title <ButtonPress-2> "tk_popup $w.menu.options %X %Y"
     $w.c bind title <ButtonPress-1> "tk_popup $w.menu.options %X %Y"
     bind $w <Escape> "destroy $w"
     bind $w <space>  toggleEngineAnalysis
@@ -146140,7 +146140,7 @@
     foreach i $playerInfoHistory {
       $w.players add command -label $i -command [list ::tools::graphs::rating::Refresh $i]
     }
-    bind $w <Button-3> "tk_popup $w.players %X %Y"
+    bind $w <Button-2> "tk_popup $w.players %X %Y"
     # Button-3 also triggers a Refresh below
 
     menu $w.menu
@@ -146353,7 +146353,7 @@
   bind $w <F1> {helpWindow Graphs Filter}
   standardShortcuts $w
   # bind $w.c <1> tools::graphs::absfilter::Switch
-  bind $w.c <3> ::tools::graphs::absfilter::Refresh
+  bind $w.c <2> ::tools::graphs::absfilter::Refresh
   bind $w <Escape> "destroy $w"
   foreach {name text} {decade Decade year Year elo Rating move moves} {
     radiobutton $w.b.$name -padx 4 -pady 3 -text [string totitle $::tr($text)] \
@@ -149777,7 +149777,7 @@
     grid $b -row 11 -column $c
     bind $b <Button-1> "::ptrack::select $sq"
     bind $b <Double-Button-1> "::ptrack::select $sq ; ::ptrack::refresh"
-    bind $b <Button-3> "::ptrack::select {a7 b7 c7 d7 e7 f7 g7 h7}"
+    bind $b <Button-2> "::ptrack::select {a7 b7 c7 d7 e7 f7 g7 h7}"
   }
   grid [frame $w.bd.gap2 -height 5] -row 12 -column 0
   foreach file {a b c d e f g h} c {1 2 3 4 5 6 7 8} p {p p p p p p p p} {
@@ -149787,7 +149787,7 @@
     grid $b -row 13 -column $c
     bind $b <Button-1> "::ptrack::select $sq"
     bind $b <Double-Button-1> "::ptrack::select $sq ; ::ptrack::refresh"
-    bind $b <Button-3> "::ptrack::select {a2 b2 c2 d2 e2 f2 g2 h2}"
+    bind $b <Button-2> "::ptrack::select {a2 b2 c2 d2 e2 f2 g2 h2}"
   }
   foreach file {a b c d e f g h} c {1 2 3 4 5 6 7 8} p {r n b q k b n r} {
     set sq ${file}1
@@ -149800,15 +149800,15 @@
 
   # Both-piece bindings:
   foreach sq {d1 e1 d8 e8} {
-    bind $w.bd.p$sq <3> [list ::ptrack::select $sq]
+    bind $w.bd.p$sq <2> [list ::ptrack::select $sq]
   }
   foreach left {a b c} right {h g f} {
     set cmd [list ::ptrack::select [list ${left}1 ${right}1]]
-    bind $w.bd.p${left}1 <ButtonPress-3> $cmd
-    bind $w.bd.p${right}1 <ButtonPress-3> $cmd
+    bind $w.bd.p${left}1 <ButtonPress-2> $cmd
+    bind $w.bd.p${right}1 <ButtonPress-2> $cmd
     set cmd [list ::ptrack::select [list ${left}8 ${right}8]]
-    bind $w.bd.p${left}8 <ButtonPress-3> $cmd
-    bind $w.bd.p${right}8 <ButtonPress-3> $cmd
+    bind $w.bd.p${left}8 <ButtonPress-2> $cmd
+    bind $w.bd.p${right}8 <ButtonPress-2> $cmd
   }
 
   # Status-bar help:
@@ -160570,7 +160570,7 @@
   }
 }
 # Quick save is right click
-bind $tb.save <Button-3> {
+bind $tb.save <Button-2> {
   if {[%W cget -state] != "disabled"} {gameQuickSave}
   break
 }
@@ -163674,7 +163674,7 @@
    ::move::ExitVar
 }
 
-bind $bb.exitVar <Button-3> {
+bind $bb.exitVar <Button-2> {
    set ::pause 1
    while {[sc_var level] > 1} {
      sc_var exit
@@ -163709,17 +163709,17 @@
 button $bb.windows  -image tb_windows   -command {raiseAllWindows 1}
 
 # Right-click raises .splash
-bind $bb.windows <Button-3> {
+bind $bb.windows <Button-2> {
   wm deiconify .splash
   raise .splash
   break
 }
 
 # Right-click Autoplays all games in filter
-bind $bb.autoplay <Button-3> {toggleAutoplay 2 ; break}
+bind $bb.autoplay <Button-2> {toggleAutoplay 2 ; break}
 
 # Right-click adds a null move and enters trial mode
-bind $bb.trial    <Button-3>  {setTrialMode toggleNull ; break}
+bind $bb.trial    <Button-2> {setTrialMode toggleNull ; break}
 
 ::utils::tooltip::Set $bb.autoplay [tr AutoPlay]
 ::utils::tooltip::Set $bb.trial [tr TrialMode]
@@ -163811,12 +163811,12 @@
 # Pop-up this menu with a right click on a few empty real estates (if not dragging)
 
 if { !$::docking::USE_DOCKING } {
-  bind .main <ButtonPress-3> {contextmenu %X %Y}
+  bind .main <ButtonPress-2> {contextmenu %X %Y}
 }
-bind .main <ButtonPress-2> {
+bind .main <ButtonPress-3> {
   if {"%W" != ".main.board.bd"} {toggleGameInfo}
 }
-bind .main.gameInfo <ButtonPress-3> {
+bind .main.gameInfo <ButtonPress-2> {
   tk_popup .menu.options.ginfo %X %Y
 }
 
@@ -171615,7 +171615,7 @@
       set ::fics::graph(on) [expr {! $::fics::graph(on)}]
       ::fics::showGraph
     }
-    bind $w <Button-2> {if {[string match .fics.bottom* %W]} {.fics.bottom.buttons.offers invoke}}
+    bind $w <Button-3> {if {[string match .fics.bottom* %W]} {.fics.bottom.buttons.offers invoke}}
     button $w.bottom.buttons.findopp -textvar tr(FICSFindOpponent) -command {::fics::findOpponent}
     button $w.bottom.buttons.quit    -textvar tr(FICSQuit) -command {::fics::close}
     grid $w.bottom.buttons.offers  -column 0 -row $row -sticky ew -padx 3 -pady 2
@@ -171632,7 +171632,7 @@
     bind $w <Destroy>   ::fics::close
     bind $w <Configure> "if {\"%W\" == \"$w\"} {::fics::recordFicsSize}"
     bind $w <F1> {helpWindow FICS}
-    bind $w <Button-3> {
+    bind $w <Button-2> {
       tk_popup .menu.options.fics %X %Y
     }
 
@@ -176676,7 +176676,7 @@
   ::board::bind .main.board $i <Enter> "enterSquare $i"
   ::board::bind .main.board $i <Leave> "leaveSquare $i"
   ::board::bind .main.board $i <ButtonPress-1> "pressSquare $i 0"
-  ::board::bind .main.board $i <ButtonPress-2> "pressSquare $i 1"
+  ::board::bind .main.board $i <ButtonPress-3> "pressSquare $i 1"
   ::board::bind .main.board $i <Control-ButtonPress-1> "drawArrow $i \$::commenteditor::State(markColor)"
   ::board::bind .main.board $i <Shift-ButtonPress-1> "addMarker $i \$::commenteditor::State(markColor)"
 
@@ -176689,7 +176689,7 @@
 # if we want to use the above "addMarker" bindings
 bind .main.board.bd <B1-Motion> {::board::dragPiece .main.board %x %y}
 bind .main.board.bd <ButtonRelease-1> {releaseSquare .main.board %x %y}
-bind .main.board.bd <ButtonRelease-2> {releaseSquare .main.board %x %y}
+bind .main.board.bd <ButtonRelease-3> {releaseSquare .main.board %x %y}
 
 foreach i {o q r n k O Q R B N K} {
   bind .main <$i> "moveEntry_Char [string toupper $i]"
@@ -183077,7 +183077,7 @@
 # Same padding as '.main.button.$i configure' in main.tcl
 button .main.button.exthardware -image tb_eng_disconnected -relief flat -border 1 \
   -highlightthickness 0 -takefocus 0 -width 30 -height 30
-bind .main.button.exthardware <Button-3> ::ExtHardware::config
+bind .main.button.exthardware <Button-2> ::ExtHardware::config
 
 # Source ExtHardware options file
 
