| Summary: | Workbench colors need OS specific tweaks, e.g. unselected tabs cannot be read on Solaris | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Grant Gayed <grant_gayed> | ||||||
| Component: | UI | Assignee: | Kim Horne <eclipse> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | critical | ||||||||
| Priority: | P3 | CC: | andre_weinand, billy.biggs, erich_gamma, lindawat, michaelvanmeekeren, Tod_Creasey | ||||||
| Version: | 3.0 | ||||||||
| Target Milestone: | 3.0 RC1 | ||||||||
| Hardware: | Sun | ||||||||
| OS: | Solaris | ||||||||
| Whiteboard: | |||||||||
| Bug Depends on: | 61916 | ||||||||
| Bug Blocks: | 56476 | ||||||||
| Attachments: |
|
||||||||
|
Description
Grant Gayed
If you cannot attach a screenshot, please describe the symptoms in more detail. Are the tabs too small? Are they missing text? Are the tabs missing entirely? When you say "unselected", does this mean that the tab with focus can be seen? The tab backgrounds and their texts are white, so the CTabFolder tab areas just look white, and the labels do not appear because their colours match. Their size is fine. I think this is the ui setting chosen colour values into the CTabFolder, and on solaris and aix the foreground and backgrounds are being set to the same (or the background is being set and the foreground default happens to match it). By "unselected" I mean, if you have a perspective open with a stack of views in the top-right and another stack in the top-left, selecting one of the top-left views makes the tabs in the top-right stack unreadable, as well as any other top-left views whose tabs are showing. This is a problem of incompatible constants. Kims suggestion was to change the widget foreground to black by default for M8 and then do a better color resolver during M9. asking others to comment on unusable platform specific color choices as well A general solution for this problem is not possible for M8 and any solution we could provide would be specific to one machine. Deferring this to M9. In the meantime, I suggest you go to your Workbench->Colors and Fonts preference page and set your colors to something usable. I've added the ability for colors/fonts to describe their default values based on the platform/windowing system. We can now begin to address these issues. Motif colors have been improved in HEAD. Please reopen if builds post I20040427800 do not address this. In 0506 the inactive tabs on Solaris 9 still show up as white-on-white. Michael changed the constants for the I20040511 build - has this been resolved? no, inactive tabs are still white-on-white Is the tab background ENTIRELY white, or just mostly white? It should be a gradient with another colour... it's entirely white The white-on-white problem is a bug in SWT where it can't draw gradients (or an approximation of them) in the 8bit motif system. Bug 61916 has been logged to track this defect. There are ways in which we (Workbench) can work around this bug. Some of them require API and the others may not be preferable. We could add API to the colorDefinition mechanism to filter based on color depth as well as platform/windowing system. We could also hardcode motiff to be gradientless or provide a motif color file that has colors suitable for eclipse. Alternatively we could decide not to provide a workaround at all for 3.0. Platform has no reasonable workaround for this bug in the M9 timeframe. We're dependant on 61916 for a fix. bug 61916 has been marked as WONTFIX, although they now use the other gradient colour as the background. Kim, can you please verify whether this is acceptable on Motif? We're still broken, but in a differnet way. Now that the values that are used by the CTabFolder in 8bit colour mode have been switched, our active no focus editor is white on white. This also impacts high contrast mode. Billy is working on a colour factory to address this concern. It will supplied with three colours: the required forground colour and two candidate background colours. The factory will then choose the background colour that provides the best contrast when paired with the forground colour. Created attachment 11217 [details]
Patch to add RGBContrastFactory
This patch creates a new colour factory that selects the background colour with
highest contrast to the foreground. The contrast difference is calculated as
the distance in lightness under the IPT perceptual colourspace.
Created attachment 11218 [details]
Patch using RGBContrastFactory
Here is how the RGBContrastFactory can be used in the eclipse UI plugin.xml to
select whichever of widget_background or white has higher contrast with
widget_foreground.
Fix in HEAD. Verified on the Solaris box in question using RC1. Also verified in High Contrast Windows XP. (Marking as verified) Closing to keep a tidy house. Pardon the spam. |