File theme.patch of Package f-spot
From 1000db3099631fd2da9d8f8e484fec0cb4eaf835 Mon Sep 17 00:00:00 2001
From: sdelcroix <sdelcroix@772769d8-d925-0410-89eb-a6ffa0d40526>
Date: Thu, 6 Nov 2008 10:00:55 +0000
Subject: [PATCH] 2008-11-06 Stephane Delcroix <sdelcroix@novell.com>
* src/main.cs:
* src/UI,Dialog/PreferenceDialog.cs: fix theme loading for gtk+ > 2.12.4
git-svn-id: svn+ssh://svn.gnome.org/svn/f-spot/branches/FSPOT_0_5_0_STABLE@4577 772769d8-d925-0410-89eb-a6ffa0d40526
---
ChangeLog | 5 +++++
src/UI.Dialog/PreferenceDialog.cs | 36 +++++++++++++++---------------------
src/main.cs | 7 ++++---
3 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5cb72e0..951e9aa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-06 Stephane Delcroix <sdelcroix@novell.com>
+
+ * src/main.cs:
+ * src/UI,Dialog/PreferenceDialog.cs: fix theme loading for gtk+ > 2.12.4
+
2008-11-05 Stephane Delcroix <sdelcroix@novell.com>
* src/TagSelectionWidget.cs:
diff --git a/src/UI.Dialog/PreferenceDialog.cs b/src/UI.Dialog/PreferenceDialog.cs
index 7d1865a..a83056f 100644
--- a/src/UI.Dialog/PreferenceDialog.cs
+++ b/src/UI.Dialog/PreferenceDialog.cs
@@ -130,8 +130,8 @@ namespace FSpot.UI.Dialog {
set_saver_button.Clicked += HandleUseFSpot;
screensaverall_radio.Toggled += ToggleTagRadio;
- themenone_radio.Toggled += ToggleThemeRadio;
themelist_combo = ComboBox.NewText ();
+ themenone_radio.Toggled += ToggleThemeRadio;
theme_list = new Dictionary<string, string> ();
string gtkrc = Path.Combine ("gtk-2.0", "gtkrc");
string [] search = {Path.Combine (Global.HomeDirectory, ".themes"), "/usr/share/themes"};
@@ -242,13 +242,19 @@ namespace FSpot.UI.Dialog {
if (themenone_radio.Active) {
Preferences.Set (Preferences.GTK_RC, String.Empty);
#if GTK_2_12_2
- if (!File.Exists (Path.Combine (Global.BaseDirectory, "gtkrc")))
- (File.Create (Path.Combine (Global.BaseDirectory, "gtkrc"))).Dispose ();
- else
- File.SetLastWriteTime (Path.Combine (Global.BaseDirectory, "gtkrc"), DateTime.Now);
Gtk.Rc.DefaultFiles = Global.DefaultRcFiles;
- Gtk.Rc.ReparseAll ();
+ Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
#endif
+ } else {
+ TreeIter iter;
+ if (themelist_combo.GetActiveIter (out iter)) {
+ Preferences.Set (Preferences.GTK_RC, theme_list [(themelist_combo.Model.GetValue (iter, 0)) as string]);
+#if GTK_2_12_2
+ Gtk.Rc.DefaultFiles = Global.DefaultRcFiles;
+ Gtk.Rc.AddDefaultFile (Preferences.Get<string> (Preferences.GTK_RC));
+ Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
+#endif
+ }
}
}
@@ -260,15 +266,9 @@ namespace FSpot.UI.Dialog {
if ((o as ComboBox).GetActiveIter (out iter))
Preferences.Set (Preferences.GTK_RC, theme_list [((o as ComboBox).Model.GetValue (iter, 0)) as string]);
#if GTK_2_12_2
- if (!File.Exists (Path.Combine (Global.BaseDirectory, "gtkrc")))
- (File.Create (Path.Combine (Global.BaseDirectory, "gtkrc"))).Dispose ();
- else
- File.SetLastWriteTime (Path.Combine (Global.BaseDirectory, "gtkrc"), DateTime.Now);
Gtk.Rc.DefaultFiles = Global.DefaultRcFiles;
Gtk.Rc.AddDefaultFile (Preferences.Get<string> (Preferences.GTK_RC));
- foreach (string s in Rc.DefaultFiles)
- Console.WriteLine (s);
- Gtk.Rc.ReparseAll ();
+ Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
#endif
}
@@ -277,15 +277,9 @@ namespace FSpot.UI.Dialog {
if (theme_filechooser.Filename != null && theme_filechooser.Filename != Preferences.Get<string> (Preferences.GTK_RC)) {
Preferences.Set (Preferences.GTK_RC, theme_filechooser.Filename);
#if GTK_2_12_2
- if (!File.Exists (Path.Combine (Global.BaseDirectory, "gtkrc")))
- (File.Create (Path.Combine (Global.BaseDirectory, "gtkrc"))).Dispose ();
- else
- File.SetLastWriteTime (Path.Combine (Global.BaseDirectory, "gtkrc"), DateTime.Now);
Gtk.Rc.DefaultFiles = Global.DefaultRcFiles;
Gtk.Rc.AddDefaultFile (Preferences.Get<string> (Preferences.GTK_RC));
- foreach (string s in Rc.DefaultFiles)
- Console.WriteLine (s);
- Gtk.Rc.ReparseAll ();
+ Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
#endif
}
}
@@ -310,7 +304,7 @@ namespace FSpot.UI.Dialog {
void HandleRefreshTheme (object o, EventArgs e)
{
#if GTK_2_12_2
- Gtk.Rc.ReparseAll ();
+ Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
#endif
}
diff --git a/src/main.cs b/src/main.cs
index b77af6a..303fad0 100644
--- a/src/main.cs
+++ b/src/main.cs
@@ -221,13 +221,14 @@ public class Driver {
Gnome.Vfs.Vfs.Initialize ();
if (File.Exists (Preferences.Get<string> (Preferences.GTK_RC))) {
+ if (File.Exists (Path.Combine (Global.BaseDirectory, "gtkrc")))
+ Gtk.Rc.AddDefaultFile (Path.Combine (Global.BaseDirectory, "gtkrc"));
+
#if GTK_2_12_2
- if (!File.Exists (Path.Combine (Global.BaseDirectory, "gtkrc")))
- (File.Create (Path.Combine (Global.BaseDirectory, "gtkrc"))).Dispose ();
- Gtk.Rc.AddDefaultFile (Path.Combine (Global.BaseDirectory, "gtkrc"));
Global.DefaultRcFiles = Gtk.Rc.DefaultFiles;
#endif
Gtk.Rc.AddDefaultFile (Preferences.Get<string> (Preferences.GTK_RC));
+ Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
}
try {
--
1.6.0.2