Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 348227 - Eclipse window background is unable to be themed properly
Summary: Eclipse window background is unable to be themed properly
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.6.1   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-03 11:11 EDT by Ruslan Kabatsayev CLA
Modified: 2017-12-06 03:07 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ruslan Kabatsayev CLA 2011-06-03 11:11:54 EDT
I'm using Eclipse in KDE with oxygen-gtk widget style. SWT is known as a wrapper over GTK+ widgets on Unixes. But it seems to force some settings which make it hard to implement correct theming for it.

See http://i.imgur.com/SCl6g.png . It shows how an Eclipse dialog looks when i disable all work-arounds in oxygen-gtk for it.
Notice that:
1. There's no background gradient (which should make titlebar bg blend with window bg).
2. Groupbox child windows have wrong color
This is because regardless of what the theming engine draws, Eclipse somehow forces its own (apparently gtkrc-based) background and doesn't allow theming engine to do its job.

To reproduce the problem, workarounds can be removed by applying this patch to oxygen-gtk master:

diff --git a/src/oxygenapplicationname.h b/src/oxygenapplicationname.h
index d013911..e25950e 100644
--- a/src/oxygenapplicationname.h
+++ b/src/oxygenapplicationname.h
@@ -93,7 +93,7 @@ namespace Oxygen
         bool isJava( void ) const { return _name == Java; }
         bool isJavaSwt( void ) const { return _name == JavaSwt; }
         bool isOpera( void ) const { return _name == Opera; }
-        bool isEclipse( void ) const { return _name == Eclipse; }
+        bool isEclipse( void ) const { return _name == Eclipse && false; }
 
         //! special case for mozilla and acrobat that also check the type of the top level widget
         /*! this allows to prevent false positive for open and print dialogs */
Comment 1 Alexander Kurtakov CLA 2017-12-06 03:07:35 EST
This bug is against really old SWT and theming has changed drastically since then. Closing. Please reopen if you still see the issue with supported version.