summaryrefslogtreecommitdiff
path: root/git-gui/lib
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-10-17 20:10:58 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-10-17 20:10:58 (GMT)
commit430cabb104103251958ac0739509e0a542e5c774 (patch)
tree707b78ab649e53b37c0cf08ee8cb339bfe994cea /git-gui/lib
parenta5fa49ff0a8f3252c6bff49f92b85e7683868f8a (diff)
parent38c2ac2e2ab00a8bcef528f24cb5b883b4413e5c (diff)
downloadgit-430cabb104103251958ac0739509e0a542e5c774.zip
git-430cabb104103251958ac0739509e0a542e5c774.tar.gz
git-430cabb104103251958ac0739509e0a542e5c774.tar.bz2
Merge https://github.com/prati0100/git-gui
* https://github.com/prati0100/git-gui: git-gui: blame: prevent tool tips from sticking around after Command-Tab git-gui: improve dark mode support git-gui: fix mixed tabs and spaces; prefer tabs
Diffstat (limited to 'git-gui/lib')
-rw-r--r--git-gui/lib/blame.tcl1
-rw-r--r--git-gui/lib/themed.tcl38
2 files changed, 39 insertions, 0 deletions
diff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl
index 62ec083..8441e10 100644
--- a/git-gui/lib/blame.tcl
+++ b/git-gui/lib/blame.tcl
@@ -328,6 +328,7 @@ constructor new {i_commit i_path i_jump} {
bind $i <Any-Motion> [cb _show_tooltip $i @%x,%y]
bind $i <Any-Enter> [cb _hide_tooltip]
bind $i <Any-Leave> [cb _hide_tooltip]
+ bind $i <Deactivate> [cb _hide_tooltip]
bind_button3 $i "
[cb _hide_tooltip]
set cursorX %x
diff --git a/git-gui/lib/themed.tcl b/git-gui/lib/themed.tcl
index 88b3119..83e3ac7 100644
--- a/git-gui/lib/themed.tcl
+++ b/git-gui/lib/themed.tcl
@@ -1,6 +1,44 @@
# Functions for supporting the use of themed Tk widgets in git-gui.
# Copyright (C) 2009 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+namespace eval color {
+ # Variable colors
+ # Preffered way to set widget colors is using add_option.
+ # In some cases, like with tags in_diff/in_sel, we use these colors.
+ variable select_bg lightgray
+ variable select_fg black
+
+ proc sync_with_theme {} {
+ set base_bg [ttk::style lookup . -background]
+ set base_fg [ttk::style lookup . -foreground]
+ set text_bg [ttk::style lookup Treeview -background]
+ set text_fg [ttk::style lookup Treeview -foreground]
+ set select_bg [ttk::style lookup Default -selectbackground]
+ set select_fg [ttk::style lookup Default -selectforeground]
+
+ set color::select_bg $select_bg
+ set color::select_fg $select_fg
+
+ proc add_option {key val} {
+ option add $key $val widgetDefault
+ }
+ # Add options for plain Tk widgets
+ # Using `option add` instead of tk_setPalette to avoid unintended
+ # consequences.
+ if {![is_MacOSX]} {
+ add_option *Menu.Background $base_bg
+ add_option *Menu.Foreground $base_fg
+ add_option *Menu.activeBackground $select_bg
+ add_option *Menu.activeForeground $select_fg
+ }
+ add_option *Text.Background $text_bg
+ add_option *Text.Foreground $text_fg
+ add_option *Text.HighlightBackground $base_bg
+ add_option *Text.HighlightColor $select_bg
+ }
+}
+
proc ttk_get_current_theme {} {
# Handle either current Tk or older versions of 8.5
if {[catch {set theme [ttk::style theme use]}]} {