All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Haller <stefan@haller-berlin.de>
To: me@yadavpratyush.com
Cc: serg.partizan@gmail.com, git@vger.kernel.org
Subject: Re: [PATCH] git-gui: use gray selection background for inactive text widgets
Date: Mon, 30 Nov 2020 21:18:36 +0100	[thread overview]
Message-ID: <20201130201837.19091-1-stefan@haller-berlin.de> (raw)
In-Reply-To: <20201130180827.2oimhr3vmjq7tzaq@yadavpratyush.com>

On 30.11.20 19:08, Pratyush Yadav wrote:
> On 30/11/20 03:41PM, serg.partizan@gmail.com wrote:
>> On Sun, Nov 29, 2020 at 18:40, Stefan Haller <stefan@haller-berlin.de>
>> wrote:
>>> After spending quite a while single-stepping through lots of Tk code, I
>>> found the reason. On Mac, disabled text widgets simply don't draw the
>>> selection background. [1]
>>>
>>> I can see three options for solving this:
>>>
>>> 1) Don't use "state focus" and "state !focus" on the text widgets, but
>>>    instead set the selection color manually using "text conf sel
>>>    -background". Disadvantage: have to calculate the disabled color
>>>    using a heuristic like I did for the file lists in my v2 patch.
>>>
>>> 2) Don't use "configure -state disabled" to make the diff text widget
>>>    read-only; instead, use one of the other methods from [2].
>>>    Disadvantage: quite a big change, and seems complex to me.
>>>
>>> 3) Enable the the diff widget when it loses focus, and disable it again
>>>    when it gets focus. I tried this in a quick prototype, and it works
>>>    very well. It just *feels* wrong to enable a read-only text widget
>>>    while it is unfocused; but I couldn't find any situation where it
>>>    would behave wrong, because as soon as you try to interact with it,
>>>    the first thing that happens is that it gets disabled again.
>>>
>>> I tend towards option 3, because it's reasonably simple and works. I'll
>>> work on a patch tomorrow unless anybody has objections.
>>>
>>
>> I don't like any of this options, as it makes code complicated. I personally
>> would prefer to not implement this feature at all, but that's just me.
>
> That is my first thought as well. All 3 alternatives are less than
> ideal. I don't think the problem is big enough to warrant adding hacks
> like this. They will come back to bite us sooner or later.
>
> If you _really_ want to fix this, maybe try convincing the Tk devs about
> fixing it.

Yeah, maybe. Just for the record, here's a patch that does it (in the next
message), and frankly, I don't think it's so bad. I do think it's enough of an
improvement that it's worth having. I guess I'll have to maintain it in my local
build if you don't like it.

-Stefan

  reply	other threads:[~2020-11-30 20:19 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
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                       ` Stefan Haller [this message]
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=20201130201837.19091-1-stefan@haller-berlin.de \
    --to=stefan@haller-berlin.de \
    --cc=git@vger.kernel.org \
    --cc=me@yadavpratyush.com \
    --cc=serg.partizan@gmail.com \
    /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.