gitk: Match ttk fonts to gitk fonts

The fonts set in setoptions aren't consistently picked up by ttk, which uses its own predefined fonts. This is noticeable when switching between using and not using ttk with custom fonts or in HiDPI settings (where the default TTK fonts do _not_ respect tk sclaing). Fix by mapping the ttk fontset to the one used by gitk internally. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>

Giuseppe Bilotta committed Dec 8, 2015 at 08:05 UTC 6cb73c84e1dcf1d04f24b6e7915e5606bf69a5fd
1 file changed +18
gitk
+18
@@ -1943,6 +1943,8 @@ proc confirm_popup {msg {owner .}} {
1943 }
1944
1945 proc setoptions {} {
1946 + global use_ttk
1947 +
1948 if {[tk windowingsystem] ne "win32"} {
1949 option add *Panedwindow.showHandle 1 startupFile
1950 option add *Panedwindow.sashRelief raised startupFile
@@ -1965,6 +1967,18 @@ proc setoptions {} {
1967 option add *Listbox.font mainfont startupFile
1968 }
1969
1970 +proc setttkstyle {} {
1971 + eval font configure TkDefaultFont [fontflags mainfont]
1972 + eval font configure TkTextFont [fontflags textfont]
1973 + eval font configure TkHeadingFont [fontflags mainfont]
1974 + eval font configure TkCaptionFont [fontflags mainfont] -weight bold
1975 + eval font configure TkTooltipFont [fontflags uifont]
1976 + eval font configure TkFixedFont [fontflags textfont]
1977 + eval font configure TkIconFont [fontflags uifont]
1978 + eval font configure TkMenuFont [fontflags uifont]
1979 + eval font configure TkSmallCaptionFont [fontflags uifont]
1980 +}
1981 +
1982 # Make a menu and submenus.
1983 # m is the window name for the menu, items is the list of menu items to add.
1984 # Each item is a list {mc label type description options...}
@@ -12356,6 +12370,10 @@ if {![info exists have_ttk]} {
12370 set use_ttk [expr {$have_ttk && $want_ttk}]
12371 set NS [expr {$use_ttk ? "ttk" : ""}]
12372
12373 +if {$use_ttk} {
12374 + setttkstyle
12375 +}
12376 +
12377 regexp {^git version ([\d.]*\d)} [exec git version] _ git_version
12378
12379 set show_notes {}