Community
Participate
Working Groups
This applies to all eclipse 3.1 versions and the current HEAD. In FormToolkit.initializeBorder(), the existence of a theme manifest is checked to determine whether or not the native widgets will supply the desired border appearance. However, the logic in this test is not always correct. The file name "javaw.exe.manifest" is hard-coded in the method. Eclipse can be executed with 'java.exe' instead of 'javaw.exe'. It is also conceivable (though probably improbable) that someone would rename the java executed to something else entirely. I noticed the issue while I was using 'java.exe' to be able to see any messages sent to stdout. The toolkit should instead look for a manifest file corresponding to the executable that actually launched eclipse. A rather ugly (appearance-wise) scenario occurs if javaw.exe.manifest exists but java.exe.manifest does not and java.exe is used to launch eclipse -- the forms will use SWT.BORDER yielding the 3D border of classic windows in the form. Bug #110310 is related to this one.
As of today, javaw.exe.manifest is no longer required to see the Windows XP theme. All Windows XP users will see the theme. This means the check for the file javaw.exe.manifest is incorrect. You will need to check that you are running on Windows XP.
Veronika, this is one of the best news in months!! I hated this manifest checking more than poison :-).
Fixed - Forms can now expect skins on XP all the time.