Re: [PATCH 1/1] git-gui: fix colored label backgrounds when using themed widgets
On 02/12/20 09:52AM, Stefan Haller wrote:
Show 16 quoted lines
> On 01.12.20 21:06, Pratyush Yadav wrote:
> > Hi Stefan,
> >
> > Thanks for the patch.
> >
> > On 22/11/20 08:45PM, Stefan Haller wrote:
> >> The aqua theme on Mac doesn't support changing the background color for labels
> >> and frames [1]. Since the red, green, and yellow backgrounds of the labels for
> >> unstaged and staged files and the diff pane are so important design elements of
> >> git gui's main window, it's not acceptable for them to have grey backgrounds on
> >> Mac.
> >
> > I unfortunately don't have access to a Mac machine to I can't test this
> > patch.
>
> I could send screenshots if that helps.
Yes, that would be helpful.
Show 16 quoted lines
> > Were the colors fine before c02efc1 (git-gui: improve dark mode support,
> > 2020-09-26)? From what I understand that patch should not affect the
> > colors of the "Staged Changes" or the "Unstaged Changes" parts.
> >
> > If the colors were fine earlier then we need to figure out why colors
> > from the theme are being used even when we hard-code green or red when
> > creating those labels.
> >
> > Can you give it a try on a commit before c02efc1 and see what happens?
>
> No, the colors were wrong on Mac for the past ten years, all the way
> back to when ttk widgets were introduced in c80d7be5e1 ("git-gui: use
> themed tk widgets with Tk 8.5", 2010-01-26).
>
> It is simply not possible to change the background color of a ttk button
> or label on Mac; c02efc1 doesn't have anything to do with this.Ok. Thanks for the clarification. Will apply the patch.
Show 40 quoted lines
> -Stefan
>
>
> >> To work around this, simply use non-themed widgets for all labels on Mac. This
> >> is not a big problem because labels don't look extremely different between the
> >> themed and non-themed versions. There are subtle differences, but they are not
> >> as bad as having the wrong background color.
> >
> > Agreed. Though I certainly wish we didn't have to do this.
> >
> >> [1] https://stackoverflow.com/a/6723911
> >>
> >> Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
> >> ---
> >> lib/themed.tcl | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/lib/themed.tcl b/lib/themed.tcl
> >> index 83e3ac7..02aae90 100644
> >> --- a/lib/themed.tcl
> >> +++ b/lib/themed.tcl
> >> @@ -174,7 +174,7 @@ proc InitEntryFrame {} {
> >>
> >> proc gold_frame {w args} {
> >> global use_ttk
> >> - if {$use_ttk} {
> >> + if {$use_ttk && ![is_MacOSX]} {
> >> eval [linsert $args 0 ttk::frame $w -style Gold.TFrame]
> >> } else {
> >> eval [linsert $args 0 frame $w -background gold]
> >> @@ -183,7 +183,7 @@ proc gold_frame {w args} {
> >>
> >> proc tlabel {w args} {
> >> global use_ttk
> >> - if {$use_ttk} {
> >> + if {$use_ttk && ![is_MacOSX]} {
> >> set cmd [list ttk::label $w -style Color.TLabel]
> >> foreach {k v} $args {
> >> switch -glob -- $k {
> > --
Regards,
Pratyush Yadav