eclipse-platform / .github

Common contribution content for eclipse-platform repositories
https://www.eclipse.org/eclipse/
5 stars 10 forks source link

[Windows][Dark theme] Multiple preference pages use tab widgets, that are not dark theme aware #27

Open pbalint opened 2 years ago

pbalint commented 2 years ago

On Windows, multiple preference pages use tab widgets that are not dark theme-aware, thus stand out by using light colors: (Checking with Spy++, the native Win32 widget they use is SysTabControl32) image image image

While pages using dark theme-aware tab widgets use SWT_Window0-s image

Ideally, the SWT/JFace widget should be fixed, affecting all of the affected dialogs. (And this is what the darkest dark plugin also does: it replaces all of the broken tab widgets)

jonahgraham commented 2 years ago

Thanks @pbalint for the bug report.

@Torbjorn-Svensson provided similar fixes for other UI in https://github.com/eclipse-platform/eclipse.platform.team/pull/14 - so if that same way of fixing it can be applied here that would be great.

@betamaxbandit has also taken on dark mode fixes. @betamaxbandit this one be a good one to have a quick stab at.

jonahgraham commented 2 years ago

@betamaxbandit has made the first PR for this (of the many that will be required to update all the UIs) in https://github.com/eclipse-jdt/eclipse.jdt.ui/pull/126

akurtakov commented 2 years ago

Is there a dedicated bug for Windows not supporting TabFolder theming? CTabFolder is significanlty heavier widget with far more issues than TabFolder so just switching everywhere is not the right approach, esp if the real issue "windows theming of TabFolder" is not even investigated.

betamaxbandit commented 2 years ago

Yes. Bug 566359 - [Dark theme][win32]- TabFolder header not styled IIUC this relies on Windows adding native support, which doesn't appear to have happened yet.

mickaelistria commented 2 years ago

There is no hope Windows provide a style engine and this can be done natively. One possibility though would be to derive default colors in TabFolder from the parent folder, but I'm not certain it's desired in all cases. Can't the dark theme itself style the native TabFolder? cc @vogella

vogella commented 2 years ago

There is no hope Windows provide a style engine and this can be done natively. One possibility though would be to derive default colors in TabFolder from the parent folder, but I'm not certain it's desired in all cases. Can't the dark theme itself style the native TabFolder? cc @vogella

As long as SWT does not support it, we cannot style it via CSS. CSS "only" uses SWT API under the hood. Looks like it would be possible to support this in SWT, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=566359#c2

jonahgraham commented 2 years ago

so just switching everywhere is not the right approach, esp if the real issue "windows theming of TabFolder" is not even investigated.

@akurtakov the above comment is what I referred to in planning council. On the understanding that the TabFolder -> CTabFolder is bandaid solution can you confirm that this is ok to proceed with bandaid solution for now?

akurtakov commented 2 years ago

If we are clear there is no one to do real fix - bandaid it is.

mickaelistria commented 1 year ago

I'm worried that the because of win-specific issues and adopting "bandaid", we're reducing the quality of other OS support. Linux for example behaves very well with TabFolders, better than with CTabFolders, so seeing this pattern spreading across the whole IDE is likely to negatively affect Linux.

laeubi commented 1 year ago

Originally posted by @laeubi in https://github.com/eclipse-equinox/equinox/issues/137#issuecomment-1273207492

@jonahgraham @mickaelistria @akurtakov I think this clearly shows that the "bandaiding" do not work/scale well... We can't put a restriction on every eclipse plugin to use CTab(Folder) just to improve dark-mode users... That will effectively require deprecate usage of TabFolder in all Platform code and every plugin written for eclipse...


I must confess it seems to be that there was already a decision, its a bit strange to merge all those PRs if it is not decided how to proceed?

akurtakov commented 1 year ago

Seeing this going on as search and replace of TabFolder with CTabFolder and there are many more places like that even outside Platform and getting complains from two of the most active Platform developers about it I think we should reconsider and this "bandaid" solution is not OK anymore. Please work in proper fix in Win32 SWT TabFolder.

akurtakov commented 1 year ago

If you disagree with my assesment here feel free to send email to Eclipse PMC so it's discussed and voted there but punishing other OS users via CTabFolder (yes, it's slower, uglier and lacks integration) because Win32 port is not worked on is not OK.

jonahgraham commented 1 year ago

Please work in proper fix in Win32 SWT TabFolder.

Just to be clear, there is no one available to do this. Saying no to the bandaid means that we are deciding to live with status quo on Windows.

The colour of the tabs isn't the most important feature of dark mode in the IDE, and I don't care enough about this issue to argue for it and I will happily defer to more experienced Platform developers. The Planning Council will be requesting from the IDE WG more investment in this area so that (if we can find someone to do it) it can be fixed.