All of lore.kernel.org
 help / color / mirror / Atom feed
From: serg.partizan@gmail.com
To: Stefan Haller <stefan@haller-berlin.de>
Cc: me@yadavpratyush.com, git@vger.kernel.org
Subject: Re: [PATCH] git-gui: use gray selection background for inactive text\r
 widgets
Date: Mon, 23 Nov 2020 15:13:31 +0200	[thread overview]
Message-ID: <JE39KQ.T4FA61XF34XT3@gmail.com> (raw)
In-Reply-To: <20201123114805.48800-1-stefan@haller-berlin.de>



On Mon, Nov 23, 2020 at 12:48, Stefan Haller <stefan@haller-berlin.de> 
wrote:
> On 22.11.20 18:16, serg.partizan@gmail.com wrote:
>>  I think calculating that gray color from current selection bg is 
>> too much work
>>  for just one color.
>> 
>>  We can just set inactiveSelectBackground to some neutral gray color 
>> like
>>  #707070 or #909090 which will work fine with both dark and light 
>> themes.
> 
> OK, fine with me. Here's a patch that does this (it sits on top of 
> yours). It
> almost works, except for one problem: on Mac, the inactive selection 
> background
> is white instead of lightgray, but only for the diff view; for the 
> commit editor
> it's correct. On Windows it's also correct for both views. I can't 
> figure out
> what's the difference on Mac; do you have an idea what could be wrong?
> 
I have no idea. Can confirm on linux it works as expected.
> --- 8< ---
> 
> This makes it easier to see at a glance which of the four main views 
> has the
> keyboard focus.
> ---
>  git-gui.sh     | 25 +++++++++++++++++++++----
>  lib/themed.tcl | 13 +++++++++----
>  2 files changed, 30 insertions(+), 8 deletions(-)
> 
> diff --git a/git-gui.sh b/git-gui.sh
> index 867b8ce..a8c5cad 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -721,8 +721,8 @@ proc rmsel_tag {text} {
>  		-foreground [$text cget -foreground] \
>  		-borderwidth 0
>  	$text tag conf in_sel\
> -		-background $color::select_bg \
> -		-foreground $color::select_fg
> +		-background $color::inactive_select_bg \
> +		-foreground $color::inactive_select_fg
>  	bind $text <Motion> break
>  	return $text
>  }
> @@ -3325,8 +3325,25 @@ if {!$use_ttk} {
>  foreach i [list $ui_index $ui_workdir] {
>  	rmsel_tag $i
>  	$i tag conf in_diff \
> -		-background $color::select_bg \
> -		-foreground $color::select_fg
> +		-background $color::inactive_select_bg \
> +		-foreground $color::inactive_select_fg
> +
> +	if {$use_ttk} {

I think this check can be safely removed. This is all standard tk 
widgets, and select_bg/fg only changed if use_ttk is true.

> +		bind $i <FocusIn> {
> +			foreach tag [list in_diff in_sel] {
> +				%W tag conf $tag \
> +					-background $color::select_bg \
> +					-foreground $color::select_fg
> +			}
> +		}
> +		bind $i <FocusOut> {
> +			foreach tag [list in_diff in_sel] {

This two `foreach` can be combined into one?

> +				%W tag conf $tag \

And this `%W`, probably should be `$i`?

> +					-background $color::inactive_select_bg \
> +					-foreground $color::inactive_select_fg
> +			}
> +		}
> +	}

And maybe this new code should be grouped into function like 
"bind_tag_selection_handlers" to improve readability?

>  }
>  unset i
> 
> diff --git a/lib/themed.tcl b/lib/themed.tcl
> index eda5f8c..02b15f2 100644
> --- a/lib/themed.tcl
> +++ b/lib/themed.tcl
> @@ -6,8 +6,10 @@ 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
> +	variable select_bg				lightblue
> +	variable select_fg				black
> +	variable inactive_select_bg		lightgray
> +	variable inactive_select_fg		black
> 
>  	proc sync_with_theme {} {
>  		set base_bg		[ttk::style lookup . -background]
> @@ -16,6 +18,9 @@ namespace eval color {
>  		set text_fg		[ttk::style lookup Treeview -foreground]
>  		set select_bg	[ttk::style lookup Default -selectbackground]
>  		set select_fg	[ttk::style lookup Default -selectforeground]
> +		# We keep inactive_select_bg as the hard-coded light gray above, as
> +		# there doesn't seem to be a way to get it from the theme. Light 
> gray
> +		# should work well for light and dark themes.
> 
>  		set color::select_bg $select_bg
>  		set color::select_fg $select_fg
> @@ -36,8 +41,8 @@ namespace eval color {
>  		add_option *Text.Foreground $text_fg
>  		add_option *Text.selectBackground $select_bg
>  		add_option *Text.selectForeground $select_fg
> -		add_option *Text.inactiveSelectBackground $select_bg
> -		add_option *Text.inactiveSelectForeground $select_fg
> +		add_option *Text.inactiveSelectBackground 
> $color::inactive_select_bg
> +		add_option *Text.inactiveSelectForeground 
> $color::inactive_select_fg
>  	}
>  }
> 
> --
> 2.29.0.18.gf8c967e53c
> 



  reply	other threads:[~2020-11-23 13:14 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-24 15:48 [PATCH] git-gui: Basic dark mode support Serg Tereshchenko
2020-08-25 19:01 ` Matthias Aßhauer
2020-09-22 11:04 ` Pratyush Yadav
2020-09-26 14:54   ` [PATCH v2] " Serg Tereshchenko
2020-10-07 11:07     ` Pratyush Yadav
2020-10-08  8:24       ` [PATCH] " Serg Tereshchenko
2020-10-08 13:07     ` [PATCH v2] " Pratyush Yadav
2020-11-21 17:47       ` Stefan Haller
2020-11-22 12:30         ` serg.partizan
2020-11-22 13:32         ` [PATCH] git-gui: Fix selected text colors Serg Tereshchenko
2020-11-22 15:41           ` Stefan Haller
2020-11-22 17:16             ` serg.partizan
2020-11-23 11:48               ` [PATCH] git-gui: use gray selection background for inactive text widgets Stefan Haller
2020-11-23 13:13                 ` serg.partizan [this message]
2020-11-23 19:03                   ` Stefan Haller
2020-11-23 20:08                     ` serg.partizan
2020-11-29 17:40                 ` Stefan Haller
2020-11-30 13:41                   ` serg.partizan
2020-11-30 18:08                     ` [PATCH] git-gui: use gray selection background for inactive text?? widgets Pratyush Yadav
2020-11-30 20:18                       ` [PATCH] git-gui: use gray selection background for inactive text widgets Stefan Haller
2020-11-30 20:18                         ` [PATCH] git-gui: keep showing selection when diff view gets deactivated on Mac Stefan Haller
2020-11-23 19:03               ` [PATCH] git-gui: Fix selected text colors Stefan Haller
2020-11-23 20:50                 ` serg.partizan
2020-11-24 21:19                   ` Stefan Haller
2020-11-24 21:23                     ` [PATCH v2] git-gui: use gray background for inactive text widgets Stefan Haller
2020-12-17 21:49                       ` Pratyush Yadav
2020-12-17 22:14                         ` Stefan Haller
2020-12-18 12:50                           ` Pratyush Yadav
2020-12-18 13:01                             ` Stefan Haller
2020-12-18  9:43                         ` [PATCH v3] " Stefan Haller
2020-12-18 12:51                           ` Pratyush Yadav
2020-12-18 19:46                           ` Pratyush Yadav
2020-12-17 20:23           ` [PATCH] git-gui: Fix selected text colors Pratyush Yadav
2020-10-07 11:13 ` [PATCH] git-gui: Basic dark mode support Pratyush Yadav
2020-10-08  8:20   ` Serg Tereshchenko
2020-10-08  8:28     ` Pratyush Yadav
2020-10-08  8:44       ` Serg Tereshchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=JE39KQ.T4FA61XF34XT3@gmail.com \
    --to=serg.partizan@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=me@yadavpratyush.com \
    --cc=stefan@haller-berlin.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.