summaryrefslogtreecommitdiff
path: root/extra/oxygen-gtk2/fix-regression.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/oxygen-gtk2/fix-regression.patch')
-rw-r--r--extra/oxygen-gtk2/fix-regression.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/extra/oxygen-gtk2/fix-regression.patch b/extra/oxygen-gtk2/fix-regression.patch
new file mode 100644
index 000000000..466b53c17
--- /dev/null
+++ b/extra/oxygen-gtk2/fix-regression.patch
@@ -0,0 +1,48 @@
+diff --git a/src/oxygenqtsettings.cpp b/src/oxygenqtsettings.cpp
+index f2ad1af..9965086 100644
+--- a/src/oxygenqtsettings.cpp
++++ b/src/oxygenqtsettings.cpp
+@@ -102,6 +102,9 @@ namespace Oxygen
+
+ const bool forced( flags&Forced );
+
++ // no attempt at initializing if gtk settings is not yet set
++ if( !gtk_settings_get_default() ) return false;
++
+ if( _initialized && !forced ) return false;
+ else if( !forced ) _initialized = true;
+
+diff --git a/src/oxygenstylewrapper.cpp b/src/oxygenstylewrapper.cpp
+index ff0666b..a2572b0 100644
+--- a/src/oxygenstylewrapper.cpp
++++ b/src/oxygenstylewrapper.cpp
+@@ -3741,6 +3741,10 @@ namespace Oxygen
+ #endif
+
+ // style initialization
++ /*
++ this is normally achieved in theme_init, but is somehow not working with gnome shell
++ so that it is redone here, since duplication is avoided when initialization is called twice without modifications
++ */
+ Style::instance().initialize();
+
+ // hooks
+diff --git a/src/oxygentheme.cpp b/src/oxygentheme.cpp
+index 50b04e2..9bc49e1 100644
+--- a/src/oxygentheme.cpp
++++ b/src/oxygentheme.cpp
+@@ -52,12 +52,8 @@ void theme_init( GTypeModule* module )
+ Oxygen::RCStyle::registerType( module );
+ Oxygen::StyleWrapper::registerType( module );
+
+- // initialize oxygen here, for XUL applications
+- // special care is taken to not initialize everything
+- Oxygen::ApplicationName applicationName;
+- applicationName.initialize();
+- if( applicationName.isXul() )
+- { Oxygen::Style::instance().initialize( Oxygen::QtSettings::Forced | Oxygen::QtSettings::Colors ); }
++ // style initialization
++ Oxygen::Style::instance().initialize();
+
+ }
+