From 2e573ea714d6be8a266980f0f79ce6daf8fcc3ee Mon Sep 17 00:00:00 2001 From: Siep Kroonenberg Date: Fri, 24 Apr 2020 19:09:00 +0000 Subject: Tcl GUIs: add browser shortcuts for font scaling git-svn-id: svn://tug.org/texlive/trunk@54861 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/scripts/tlshell/tlshell.tcl | 29 +++++++++++++----- Master/tlpkg/installer/install-tl-gui.tcl | 42 ++++++++++++++++++++++----- 2 files changed, 56 insertions(+), 15 deletions(-) diff --git a/Master/texmf-dist/scripts/tlshell/tlshell.tcl b/Master/texmf-dist/scripts/tlshell/tlshell.tcl index e0e10993713..a78f494655c 100755 --- a/Master/texmf-dist/scripts/tlshell/tlshell.tcl +++ b/Master/texmf-dist/scripts/tlshell/tlshell.tcl @@ -2010,6 +2010,11 @@ proc set_fontscale {s} { } } +proc zoom {n} { + if {$n <= 0} {set n 1} + set_fontscale [expr {$n*$::tkfontscale}] +} + ##### running external commands ##### # For capturing an external command, we need a separate output channel, @@ -2179,14 +2184,22 @@ proc populate_main {} { .mn.opt add cascade -label [__ "GUI font scaling"] \ -menu .mn.opt.fscale menu .mn.opt.fscale - foreach s {0.5 0.7 1 1.25 1.5 2 3 4 6 8} { - if {$s eq $::tkfontscale} { - set mlabel "$s *" - } else { - set mlabel $s - } - .mn.opt.fscale add command -label $mlabel \ - -command "set_fontscale $s" + foreach s {0.6 0.8 1 1.2 1.6 2 2.5 3 3.8 5 6 7.5 9} { + .mn.opt.fscale add command -label $s -command "set_fontscale $s" + } + + # browser-style keyboard shortcuts for scaling + bind . {zoom 0.8} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {set_fontscale 1} + if {$::tcl_platform(os) eq "Darwin"} { + bind . {zoom 0.8} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {set_fontscale 1} } diff --git a/Master/tlpkg/installer/install-tl-gui.tcl b/Master/tlpkg/installer/install-tl-gui.tcl index e831f8984be..2a2f10896ff 100755 --- a/Master/tlpkg/installer/install-tl-gui.tcl +++ b/Master/tlpkg/installer/install-tl-gui.tcl @@ -1319,6 +1319,11 @@ proc set_fontscale {s} { run_menu } +proc zoom {n} { + if {$n <= 0} {set n 1} + set_fontscale [expr {$n*$::tkfontscale}] +} + # menus: disable tearoff feature option add *Menu.tearOff 0 @@ -1394,13 +1399,22 @@ proc run_menu {} { menu .mn.gui.fscale .mn.gui add cascade -label [__ "Font scaling"] -menu .mn.gui.fscale - foreach s {0.5 0.7 1 1.25 1.5 2 3 4 6 8} { - if {$s eq $::tkfontscale} { - set mlabel "$s *" - } else { - set mlabel $s - } - .mn.gui.fscale add command -label $mlabel -command "set_fontscale $s" + foreach s {0.6 0.8 1 1.2 1.6 2 2.5 3 3.8 5 6 7.5 9} { + .mn.gui.fscale add command -label $s -command "set_fontscale $s" + } + + # browser-style keyboard shortcuts for scaling + bind . {zoom 0.8} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {set_fontscale 1} + if {$::tcl_platform(os) eq "Darwin"} { + bind . {zoom 0.8} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {zoom 1.25} + bind . {set_fontscale 1} } # wallpaper, for a uniform background @@ -2128,6 +2142,20 @@ If this takes too long, press Abort or choose another repository." \ } } if {$answer eq "startinst"} { + # disable browser-style keyboard shortcuts for scaling + bind . {} + bind . {} + bind . {} + bind . {} + bind . {} + if {$::tcl_platform(os) eq "Darwin"} { + bind . {} + bind . {} + bind . {} + bind . {} + bind . {} + } + run_installer # invokes show_log which first destroys previous children } else { -- cgit v1.2.3