Open pbalint opened 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.
@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
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.
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.
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
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
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?
If we are clear there is no one to do real fix - bandaid it is.
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.
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?
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.
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.
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.
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](https://user-images.githubusercontent.com/4727754/175291819-47dff2ca-f7a4-4d38-ba72-050698268f69.png)
While pages using dark theme-aware tab widgets use SWT_Window0-s![image](https://user-images.githubusercontent.com/4727754/175291991-aecd5a27-618c-44d0-a426-477c34c02a39.png)
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)