[eog/gnome-2-32] Allow setting a user-defined background color



commit 00673f72432c43149747ca0c345b22b7e3edb6f1
Author: Felix Riemann <friemann gnome org>
Date:   Sun Jun 6 20:07:08 2010 +0000

    Allow setting a user-defined background color
    
    This allows the user to have another color instead of the theme defined
    color as background. For now requires a loaded image until we can
    finally fix bug 538279. Fixes bug 502992.

 data/eog-preferences-dialog.ui |  595 ++++++++++++++--------------------------
 data/eog.schemas.in            |   24 ++
 src/eog-config-keys.h          |    2 +
 src/eog-preferences-dialog.c   |   34 +++
 src/eog-scroll-view.c          |   40 +++-
 src/eog-scroll-view.h          |    2 +-
 src/eog-window.c               |   85 ++++++
 7 files changed, 382 insertions(+), 400 deletions(-)
---
diff --git a/data/eog-preferences-dialog.ui b/data/eog-preferences-dialog.ui
index 1e267ea..6569f69 100644
--- a/data/eog-preferences-dialog.ui
+++ b/data/eog-preferences-dialog.ui
@@ -1,835 +1,638 @@
-<?xml version="1.0"?>
-<!--*- mode: xml -*-->
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
+  <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkAdjustment" id="adjustment1">
-    <property name="upper">100</property>
     <property name="lower">1</property>
-    <property name="page_increment">10</property>
-    <property name="step_increment">1</property>
-    <property name="page_size">0</property>
+    <property name="upper">100</property>
     <property name="value">5</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
   </object>
   <object class="GtkDialog" id="eog_preferences_dialog">
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Eye of GNOME Preferences</property>
-    <property name="type">GTK_WINDOW_TOPLEVEL</property>
-    <property name="window_position">GTK_WIN_POS_NONE</property>
-    <property name="modal">False</property>
-    <property name="resizable">True</property>
-    <property name="destroy_with_parent">False</property>
-    <property name="decorated">True</property>
-    <property name="skip_taskbar_hint">False</property>
-    <property name="skip_pager_hint">False</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-    <property name="focus_on_map">True</property>
-    <property name="urgency_hint">False</property>
+    <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
       <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
-        <property name="homogeneous">False</property>
         <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
-            <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <object class="GtkButton" id="help_button">
-                <property name="visible">True</property>
-                <property name="can_default">True</property>
-                <property name="can_focus">True</property>
-                <property name="label">gtk-help</property>
-                <property name="use_stock">True</property>
-                <property name="relief">GTK_RELIEF_NORMAL</property>
-                <property name="focus_on_click">True</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkButton" id="close_button">
-                <property name="visible">True</property>
-                <property name="can_default">True</property>
-                <property name="can_focus">True</property>
-                <property name="label">gtk-close</property>
-                <property name="use_stock">True</property>
-                <property name="relief">GTK_RELIEF_NORMAL</property>
-                <property name="focus_on_click">True</property>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="padding">0</property>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">GTK_PACK_END</property>
-          </packing>
-        </child>
         <child>
           <object class="GtkNotebook" id="notebook">
-            <property name="border_width">5</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="show_tabs">True</property>
-            <property name="show_border">True</property>
-            <property name="tab_pos">GTK_POS_TOP</property>
-            <property name="scrollable">False</property>
-            <property name="enable_popup">False</property>
+            <property name="border_width">5</property>
             <child>
               <object class="GtkVBox" id="vbox5">
-                <property name="border_width">12</property>
                 <property name="visible">True</property>
-                <property name="homogeneous">False</property>
+                <property name="border_width">12</property>
                 <property name="spacing">18</property>
                 <child>
                   <object class="GtkVBox" id="vbox6">
                     <property name="visible">True</property>
-                    <property name="homogeneous">False</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label6">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Image Enhancements</property>
-                        <property name="use_underline">False</property>
-                        <property name="justify">GTK_JUSTIFY_LEFT</property>
-                        <property name="wrap">False</property>
-                        <property name="selectable">False</property>
                         <property name="xalign">0</property>
-                        <property name="yalign">0.5</property>
-                        <property name="xpad">0</property>
-                        <property name="ypad">0</property>
-                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                        <property name="width_chars">-1</property>
-                        <property name="single_line_mode">False</property>
-                        <property name="angle">0</property>
+                        <property name="label" translatable="yes">Image Enhancements</property>
                         <attributes>
-                          <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+                          <attribute name="weight" value="bold"/>
                         </attributes>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHBox" id="hbox_interpolate">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
                         <child>
                           <object class="GtkLabel" id="label_interpolate">
                             <property name="visible">True</property>
                             <property name="label">    </property>
-                            <property name="use_underline">False</property>
-                            <property name="use_markup">False</property>
-                            <property name="justify">GTK_JUSTIFY_LEFT</property>
-                            <property name="wrap">False</property>
-                            <property name="selectable">False</property>
-                            <property name="xalign">0.5</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                            <property name="width_chars">-1</property>
-                            <property name="single_line_mode">False</property>
-                            <property name="angle">0</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkCheckButton" id="interpolate_check">
+                            <property name="label" translatable="yes">Smooth images when zoomed-_out</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Smooth images when zoomed-_out</property>
+                            <property name="receives_default">False</property>
                             <property name="use_underline">True</property>
-                            <property name="relief">GTK_RELIEF_NORMAL</property>
-                            <property name="focus_on_click">True</property>
-                            <property name="active">False</property>
-                            <property name="inconsistent">False</property>
                             <property name="draw_indicator">True</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHBox" id="hbox_extrapolate">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
                         <child>
                           <object class="GtkLabel" id="label_extrapolate">
                             <property name="visible">True</property>
                             <property name="label">    </property>
-                            <property name="use_underline">False</property>
-                            <property name="use_markup">False</property>
-                            <property name="justify">GTK_JUSTIFY_LEFT</property>
-                            <property name="wrap">False</property>
-                            <property name="selectable">False</property>
-                            <property name="xalign">0.5</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                            <property name="width_chars">-1</property>
-                            <property name="single_line_mode">False</property>
-                            <property name="angle">0</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkCheckButton" id="extrapolate_check">
+                            <property name="label" translatable="yes">Smooth images when zoomed-_in</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Smooth images when zoomed-_in</property>
+                            <property name="receives_default">False</property>
                             <property name="use_underline">True</property>
-                            <property name="relief">GTK_RELIEF_NORMAL</property>
-                            <property name="focus_on_click">True</property>
-                            <property name="active">False</property>
-                            <property name="inconsistent">False</property>
                             <property name="draw_indicator">True</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="position">2</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHBox" id="hboxautorotate">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
                         <child>
                           <object class="GtkLabel" id="labelautopad">
                             <property name="visible">True</property>
                             <property name="label">    </property>
-                            <property name="use_underline">False</property>
-                            <property name="use_markup">False</property>
-                            <property name="justify">GTK_JUSTIFY_LEFT</property>
-                            <property name="wrap">False</property>
-                            <property name="selectable">False</property>
-                            <property name="xalign">0.5</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                            <property name="width_chars">-1</property>
-                            <property name="single_line_mode">False</property>
-                            <property name="angle">0</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkCheckButton" id="autorotate_check">
+                            <property name="label" translatable="yes">_Automatic orientation</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">_Automatic orientation</property>
+                            <property name="receives_default">False</property>
                             <property name="use_underline">True</property>
-                            <property name="relief">GTK_RELIEF_NORMAL</property>
-                            <property name="focus_on_click">True</property>
-                            <property name="active">False</property>
-                            <property name="inconsistent">False</property>
                             <property name="draw_indicator">True</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="vbox1">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkLabel" id="label1">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Background</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkAlignment" id="alignment1">
+                        <property name="visible">True</property>
+                        <property name="left_padding">16</property>
+                        <child>
+                          <object class="GtkHBox" id="hbox1">
+                            <property name="visible">True</property>
+                            <property name="spacing">12</property>
+                            <child>
+                              <object class="GtkCheckButton" id="bg_color_check">
+                                <property name="label" translatable="yes">As custom color:</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkColorButton" id="bg_color_button">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="title" translatable="yes">Background Color</property>
+                                <property name="color">#000000000000</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
-                    <property name="padding">0</property>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkVBox" id="vbox7">
                     <property name="visible">True</property>
-                    <property name="homogeneous">False</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label8">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Transparent Parts</property>
-                        <property name="use_underline">False</property>
-                        <property name="justify">GTK_JUSTIFY_LEFT</property>
-                        <property name="wrap">False</property>
-                        <property name="selectable">False</property>
                         <property name="xalign">0</property>
-                        <property name="yalign">0.5</property>
-                        <property name="xpad">0</property>
-                        <property name="ypad">0</property>
-                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                        <property name="width_chars">-1</property>
-                        <property name="single_line_mode">False</property>
-                        <property name="angle">0</property>
+                        <property name="label" translatable="yes">Transparent Parts</property>
                         <attributes>
-                          <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+                          <attribute name="weight" value="bold"/>
                         </attributes>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHBox" id="hbox4">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
                         <child>
                           <object class="GtkLabel" id="label9">
                             <property name="visible">True</property>
                             <property name="label">    </property>
-                            <property name="use_underline">False</property>
-                            <property name="use_markup">False</property>
-                            <property name="justify">GTK_JUSTIFY_LEFT</property>
-                            <property name="wrap">False</property>
-                            <property name="selectable">False</property>
-                            <property name="xalign">0.5</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                            <property name="width_chars">-1</property>
-                            <property name="single_line_mode">False</property>
-                            <property name="angle">0</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkVBox" id="vbox8">
                             <property name="visible">True</property>
-                            <property name="homogeneous">False</property>
                             <property name="spacing">6</property>
                             <child>
                               <object class="GtkRadioButton" id="checkpattern_radio">
+                                <property name="label" translatable="yes">As check _pattern</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">As check _pattern</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="focus_on_click">True</property>
-                                <property name="active">False</property>
-                                <property name="inconsistent">False</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkHBox" id="hbox5">
                                 <property name="visible">True</property>
-                                <property name="homogeneous">False</property>
                                 <property name="spacing">6</property>
                                 <child>
                                   <object class="GtkRadioButton" id="color_radio">
+                                    <property name="label" translatable="yes">As custom c_olor:</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="label" translatable="yes">As custom c_olor:</property>
+                                    <property name="receives_default">False</property>
                                     <property name="use_underline">True</property>
-                                    <property name="relief">GTK_RELIEF_NORMAL</property>
-                                    <property name="focus_on_click">True</property>
-                                    <property name="active">False</property>
-                                    <property name="inconsistent">False</property>
                                     <property name="draw_indicator">True</property>
                                     <property name="group">checkpattern_radio</property>
                                   </object>
                                   <packing>
-                                    <property name="padding">0</property>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
                                   <object class="GtkColorButton" id="color_button">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="use_alpha">False</property>
+                                    <property name="receives_default">False</property>
                                     <property name="title" translatable="yes">Color for Transparent Areas</property>
-                                    <property name="focus_on_click">True</property>
                                   </object>
                                   <packing>
-                                    <property name="padding">0</property>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
                                   </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">1</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkRadioButton" id="background_radio">
+                                <property name="label" translatable="yes">As _background</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">As _background</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="focus_on_click">True</property>
-                                <property name="active">False</property>
-                                <property name="inconsistent">False</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">checkpattern_radio</property>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">2</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
-                    <property name="padding">0</property>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
+                    <property name="position">2</property>
                   </packing>
                 </child>
               </object>
-              <packing>
-                <property name="tab_expand">False</property>
-                <property name="tab_fill">True</property>
-              </packing>
             </child>
             <child type="tab">
               <object class="GtkLabel" id="label4">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Image View</property>
-                <property name="use_underline">False</property>
-                <property name="use_markup">False</property>
-                <property name="justify">GTK_JUSTIFY_LEFT</property>
-                <property name="wrap">False</property>
-                <property name="selectable">False</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                <property name="width_chars">-1</property>
-                <property name="single_line_mode">False</property>
-                <property name="angle">0</property>
               </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
             </child>
             <child>
               <object class="GtkVBox" id="vbox11">
-                <property name="border_width">12</property>
                 <property name="visible">True</property>
-                <property name="homogeneous">False</property>
+                <property name="border_width">12</property>
                 <property name="spacing">18</property>
                 <child>
                   <object class="GtkVBox" id="vbox12">
                     <property name="visible">True</property>
-                    <property name="homogeneous">False</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label13">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Image Zoom</property>
-                        <property name="use_underline">False</property>
-                        <property name="justify">GTK_JUSTIFY_LEFT</property>
-                        <property name="wrap">False</property>
-                        <property name="selectable">False</property>
                         <property name="xalign">0</property>
-                        <property name="yalign">0.5</property>
-                        <property name="xpad">0</property>
-                        <property name="ypad">0</property>
-                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                        <property name="width_chars">-1</property>
-                        <property name="single_line_mode">False</property>
-                        <property name="angle">0</property>
+                        <property name="label" translatable="yes">Image Zoom</property>
                         <attributes>
-                          <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+                          <attribute name="weight" value="bold"/>
                         </attributes>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHBox" id="hbox7">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
                         <child>
                           <object class="GtkLabel" id="label14">
                             <property name="visible">True</property>
                             <property name="label">    </property>
-                            <property name="use_underline">False</property>
-                            <property name="use_markup">False</property>
-                            <property name="justify">GTK_JUSTIFY_LEFT</property>
-                            <property name="wrap">False</property>
-                            <property name="selectable">False</property>
-                            <property name="xalign">0.5</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                            <property name="width_chars">-1</property>
-                            <property name="single_line_mode">False</property>
-                            <property name="angle">0</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkVBox" id="vbox13">
                             <property name="visible">True</property>
-                            <property name="homogeneous">False</property>
                             <property name="spacing">6</property>
                             <child>
                               <object class="GtkCheckButton" id="upscale_check">
+                                <property name="label" translatable="yes">E_xpand images to fit screen</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">E_xpand images to fit screen</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="focus_on_click">True</property>
-                                <property name="active">False</property>
-                                <property name="inconsistent">False</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
-                    <property name="padding">0</property>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkVBox" id="vbox14">
                     <property name="visible">True</property>
-                    <property name="homogeneous">False</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label15">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Sequence</property>
-                        <property name="use_underline">False</property>
-                        <property name="justify">GTK_JUSTIFY_LEFT</property>
-                        <property name="wrap">False</property>
-                        <property name="selectable">False</property>
                         <property name="xalign">0</property>
-                        <property name="yalign">0.5</property>
-                        <property name="xpad">0</property>
-                        <property name="ypad">0</property>
-                        <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                        <property name="width_chars">-1</property>
-                        <property name="single_line_mode">False</property>
-                        <property name="angle">0</property>
+                        <property name="label" translatable="yes">Sequence</property>
                         <attributes>
-                          <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+                          <attribute name="weight" value="bold"/>
                         </attributes>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
+                        <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHBox" id="hbox8">
                         <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="spacing">0</property>
                         <child>
                           <object class="GtkLabel" id="label16">
                             <property name="visible">True</property>
                             <property name="label">    </property>
-                            <property name="use_underline">False</property>
-                            <property name="use_markup">False</property>
-                            <property name="justify">GTK_JUSTIFY_LEFT</property>
-                            <property name="wrap">False</property>
-                            <property name="selectable">False</property>
-                            <property name="xalign">0.5</property>
-                            <property name="yalign">0.5</property>
-                            <property name="xpad">0</property>
-                            <property name="ypad">0</property>
-                            <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                            <property name="width_chars">-1</property>
-                            <property name="single_line_mode">False</property>
-                            <property name="angle">0</property>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
                           <object class="GtkVBox" id="vbox15">
                             <property name="visible">True</property>
-                            <property name="homogeneous">False</property>
                             <property name="spacing">6</property>
                             <child>
                               <object class="GtkHBox" id="seconds_hbox">
                                 <property name="visible">True</property>
-                                <property name="homogeneous">False</property>
                                 <property name="spacing">6</property>
                                 <child>
                                   <object class="GtkLabel" id="label36">
                                     <property name="visible">True</property>
                                     <property name="label" translatable="yes">_Switch image after:</property>
                                     <property name="use_underline">True</property>
-                                    <property name="use_markup">False</property>
-                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
-                                    <property name="wrap">False</property>
-                                    <property name="selectable">False</property>
-                                    <property name="xalign">0.5</property>
-                                    <property name="yalign">0.5</property>
-                                    <property name="xpad">0</property>
-                                    <property name="ypad">0</property>
                                     <property name="mnemonic_widget">seconds_spin</property>
-                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                    <property name="width_chars">-1</property>
-                                    <property name="single_line_mode">False</property>
-                                    <property name="angle">0</property>
                                   </object>
                                   <packing>
-                                    <property name="padding">0</property>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
                                   <object class="GtkSpinButton" id="seconds_spin">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
+                                    <property name="adjustment">adjustment1</property>
                                     <property name="climb_rate">1</property>
-                                    <property name="digits">0</property>
                                     <property name="numeric">True</property>
-                                    <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-                                    <property name="snap_to_ticks">False</property>
-                                    <property name="wrap">False</property>
-                                    <property name="adjustment">adjustment1</property>
                                   </object>
                                   <packing>
-                                    <property name="padding">0</property>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
+                                    <property name="position">1</property>
                                   </packing>
                                 </child>
                                 <child>
                                   <object class="GtkLabel" id="label18">
                                     <property name="visible">True</property>
                                     <property name="label" translatable="yes">seconds</property>
-                                    <property name="use_underline">False</property>
-                                    <property name="use_markup">False</property>
-                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
-                                    <property name="wrap">False</property>
-                                    <property name="selectable">False</property>
-                                    <property name="xalign">0.5</property>
-                                    <property name="yalign">0.5</property>
-                                    <property name="xpad">0</property>
-                                    <property name="ypad">0</property>
-                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                    <property name="width_chars">-1</property>
-                                    <property name="single_line_mode">False</property>
-                                    <property name="angle">0</property>
                                   </object>
                                   <packing>
-                                    <property name="padding">0</property>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
+                                    <property name="position">2</property>
                                   </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkCheckButton" id="loop_check">
+                                <property name="label" translatable="yes">_Loop sequence</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
-                                <property name="label" translatable="yes">_Loop sequence</property>
+                                <property name="receives_default">False</property>
                                 <property name="use_underline">True</property>
-                                <property name="relief">GTK_RELIEF_NORMAL</property>
-                                <property name="focus_on_click">True</property>
-                                <property name="active">False</property>
-                                <property name="inconsistent">False</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="padding">0</property>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
+                                <property name="position">1</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="padding">0</property>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="padding">0</property>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
+                        <property name="position">1</property>
                       </packing>
                     </child>
                   </object>
                   <packing>
-                    <property name="padding">0</property>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </object>
               <packing>
-                <property name="tab_expand">False</property>
-                <property name="tab_fill">True</property>
+                <property name="position">1</property>
               </packing>
             </child>
             <child type="tab">
               <object class="GtkLabel" id="label5">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Slideshow</property>
-                <property name="use_underline">False</property>
-                <property name="use_markup">False</property>
-                <property name="justify">GTK_JUSTIFY_LEFT</property>
-                <property name="wrap">False</property>
-                <property name="selectable">False</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                <property name="width_chars">-1</property>
-                <property name="single_line_mode">False</property>
-                <property name="angle">0</property>
               </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
             </child>
             <child>
               <object class="GtkVBox" id="plugin_manager_container">
-                <property name="border_width">12</property>
                 <property name="visible">True</property>
-                <property name="homogeneous">False</property>
-                <property name="spacing">0</property>
+                <property name="border_width">12</property>
                 <child>
                   <placeholder/>
                 </child>
               </object>
               <packing>
-                <property name="tab_expand">False</property>
-                <property name="tab_fill">True</property>
+                <property name="position">2</property>
               </packing>
             </child>
             <child type="tab">
               <object class="GtkLabel" id="label97">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Plugins</property>
-                <property name="use_underline">False</property>
-                <property name="use_markup">False</property>
-                <property name="justify">GTK_JUSTIFY_LEFT</property>
-                <property name="wrap">False</property>
-                <property name="selectable">False</property>
-                <property name="xalign">0.5</property>
-                <property name="yalign">0.5</property>
-                <property name="xpad">0</property>
-                <property name="ypad">0</property>
-                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                <property name="width_chars">-1</property>
-                <property name="single_line_mode">False</property>
-                <property name="angle">0</property>
               </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="help_button">
+                <property name="label">gtk-help</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="close_button">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
             </child>
           </object>
           <packing>
-            <property name="padding">0</property>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
+            <property name="expand">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
           </packing>
         </child>
       </object>
diff --git a/data/eog.schemas.in b/data/eog.schemas.in
index e37c3c7..14a186a 100644
--- a/data/eog.schemas.in
+++ b/data/eog.schemas.in
@@ -14,6 +14,30 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/eog/view/background-color</key>
+      <applyto>/apps/eog/view/background-color</applyto>
+      <owner>eog</owner>
+      <type>string</type>
+      <default>#000000</default>
+      <locale name="C">
+	<short>Background Color</short>
+	<long>The color that is used to fill the area behind the image when the use-background-color key is set.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/eog/view/use-background-color</key>
+      <applyto>/apps/eog/view/use-background-color</applyto>
+      <owner>eog</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+	<short>Use a custom background color</short>
+	<long>If this is active the color set by the background-color key will be used to fill the area behind the image. If it is not set the current GTK theme will determine the fill color.</long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/eog/view/interpolate</key>
       <applyto>/apps/eog/view/interpolate</applyto>
       <owner>eog</owner>
diff --git a/src/eog-config-keys.h b/src/eog-config-keys.h
index 849a7aa..015c500 100644
--- a/src/eog-config-keys.h
+++ b/src/eog-config-keys.h
@@ -33,6 +33,7 @@
 #define EOG_CONF_DESKTOP_CAN_PRINT      	"/desktop/gnome/lockdown/disable_printing"
 #define EOG_CONF_DESKTOP_CAN_SETUP_PAGE 	"/desktop/gnome/lockdown/disable_print_setup"
 
+#define EOG_CONF_VIEW_BACKGROUND_COLOR		"/apps/eog/view/background-color"
 #define EOG_CONF_VIEW_INTERPOLATE		"/apps/eog/view/interpolate"
 #define EOG_CONF_VIEW_EXTRAPOLATE		"/apps/eog/view/extrapolate"
 #define EOG_CONF_VIEW_SCROLL_WHEEL_ZOOM		"/apps/eog/view/scroll_wheel_zoom"
@@ -40,6 +41,7 @@
 #define EOG_CONF_VIEW_AUTOROTATE                "/apps/eog/view/autorotate"
 #define EOG_CONF_VIEW_TRANSPARENCY		"/apps/eog/view/transparency"
 #define EOG_CONF_VIEW_TRANS_COLOR		"/apps/eog/view/trans_color"
+#define EOG_CONF_VIEW_USE_BG_COLOR		"/apps/eog/view/use-background-color"
 
 #define EOG_CONF_FULLSCREEN_LOOP		"/apps/eog/full_screen/loop"
 #define EOG_CONF_FULLSCREEN_UPSCALE		"/apps/eog/full_screen/upscale"
diff --git a/src/eog-preferences-dialog.c b/src/eog-preferences-dialog.c
index 75276ac..b7caaeb 100644
--- a/src/eog-preferences-dialog.c
+++ b/src/eog-preferences-dialog.c
@@ -193,6 +193,8 @@ eog_preferences_dialog_constructor (GType type,
 	GtkWidget *interpolate_check;
 	GtkWidget *extrapolate_check;
 	GtkWidget *autorotate_check;
+	GtkWidget *bg_color_check;
+	GtkWidget *bg_color_button;
 	GtkWidget *color_radio;
 	GtkWidget *checkpattern_radio;
 	GtkWidget *background_radio;
@@ -220,6 +222,8 @@ eog_preferences_dialog_constructor (GType type,
 			         "interpolate_check", &interpolate_check,
 			         "extrapolate_check", &extrapolate_check,
 			         "autorotate_check", &autorotate_check,
+				 "bg_color_check", &bg_color_check,
+				 "bg_color_button", &bg_color_button,
 			         "color_radio", &color_radio,
 			         "checkpattern_radio", &checkpattern_radio,
 			         "background_radio", &background_radio,
@@ -277,6 +281,36 @@ eog_preferences_dialog_constructor (GType type,
 			  G_CALLBACK (pd_check_toggle_cb),
 			  priv->client);
 
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bg_color_check),
+				      gconf_client_get_bool (priv->client,
+				      			     EOG_CONF_VIEW_USE_BG_COLOR, NULL));
+	g_object_set_data (G_OBJECT (bg_color_check),
+			   GCONF_OBJECT_KEY,
+			   EOG_CONF_VIEW_USE_BG_COLOR);
+	g_signal_connect (G_OBJECT (bg_color_check),
+			  "toggled", G_CALLBACK (pd_check_toggle_cb),
+			  priv->client);
+
+	value = gconf_client_get_string (priv->client,
+					 EOG_CONF_VIEW_BACKGROUND_COLOR,
+					 NULL);
+	if (gdk_color_parse (value, &color)){
+		gtk_color_button_set_color (GTK_COLOR_BUTTON (bg_color_button),
+					    &color);
+	}
+	g_free (value);
+
+	g_object_set_data (G_OBJECT (bg_color_button),
+			   GCONF_OBJECT_KEY,
+			   EOG_CONF_VIEW_BACKGROUND_COLOR);
+
+	g_signal_connect (G_OBJECT (bg_color_button),
+			  "color-set",
+			  G_CALLBACK (pd_color_change_cb),
+			  priv->client);
+
+	
+
 	g_object_set_data (G_OBJECT (color_radio),
 			   GCONF_OBJECT_KEY,
 			   EOG_CONF_VIEW_TRANSPARENCY);
diff --git a/src/eog-scroll-view.c b/src/eog-scroll-view.c
index f2303ec..433c1dd 100644
--- a/src/eog-scroll-view.c
+++ b/src/eog-scroll-view.c
@@ -74,6 +74,7 @@ static GtkTargetEntry target_table[] = {
 
 enum {
 	PROP_0,
+	PROP_USE_BG_COLOR,
 	PROP_BACKGROUND_COLOR
 };
 
@@ -143,6 +144,7 @@ struct _EogScrollViewPrivate {
 	/* the type of the cursor we are currently showing */
 	EogScrollViewCursor cursor;
 
+	gboolean  use_bg_color;
 	GdkColor *background_color;
 	GdkColor *override_bg_color;
 
@@ -2181,7 +2183,6 @@ eog_scroll_view_scrollbars_visible (EogScrollView *view)
     object creation/freeing
   ---------------------------------*/
 
-
 static void
 eog_scroll_view_init (EogScrollView *view)
 {
@@ -2264,6 +2265,9 @@ eog_scroll_view_get_property (GObject *object, guint property_id,
 	priv = view->priv;
 
 	switch (property_id) {
+	case PROP_USE_BG_COLOR:
+		g_value_set_boolean (value, priv->use_bg_color);
+		break;
 	case PROP_BACKGROUND_COLOR:
 		//FIXME: This doesn't really handle the NULL color.
 		g_value_set_boxed (value, priv->background_color);
@@ -2286,6 +2290,9 @@ eog_scroll_view_set_property (GObject *object, guint property_id,
 	priv = view->priv;
 
 	switch (property_id) {
+	case PROP_USE_BG_COLOR:
+		eog_scroll_view_set_use_bg_color (view, g_value_get_boolean (value));
+		break;
 	case PROP_BACKGROUND_COLOR:
 	{
 		const GdkColor *color = g_value_get_boxed (value);
@@ -2324,6 +2331,11 @@ eog_scroll_view_class_init (EogScrollViewClass *klass)
 				    GDK_TYPE_COLOR,
 				    G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
 
+	g_object_class_install_property (
+		gobject_class, PROP_USE_BG_COLOR,
+		g_param_spec_boolean ("use-background-color", NULL, NULL, FALSE,
+				      G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
+
 	view_signals [SIGNAL_ZOOM_CHANGED] =
 		g_signal_new ("zoom_changed",
 			      EOG_TYPE_SCROLL_VIEW,
@@ -2556,8 +2568,12 @@ _eog_scroll_view_update_bg_color (EogScrollView *view)
 	const GdkColor *selected;
 	EogScrollViewPrivate *priv = view->priv;
 
-	selected = (priv->override_bg_color) ? priv->override_bg_color
-					     : priv->background_color;
+	if (!priv->use_bg_color)
+		selected = NULL;
+	else if (priv->override_bg_color)
+		selected = priv->override_bg_color;
+	else
+		selected = priv->background_color;
 
 	if (priv->transp_style == EOG_TRANSP_BACKGROUND
 	    && priv->background_surface != NULL) {
@@ -2593,6 +2609,24 @@ eog_scroll_view_override_bg_color (EogScrollView *view,
 }
 
 void
+eog_scroll_view_set_use_bg_color (EogScrollView *view, gboolean use)
+{
+	EogScrollViewPrivate *priv;
+
+	g_return_if_fail (EOG_IS_SCROLL_VIEW (view));
+
+	priv = view->priv;
+
+	if (use != priv->use_bg_color) {
+		priv->use_bg_color = use;
+
+		_eog_scroll_view_update_bg_color (view);
+
+		g_object_notify (G_OBJECT (view), "use-background-color");
+	}
+}
+
+void
 eog_scroll_view_set_scroll_wheel_zoom (EogScrollView *view,
 				       gboolean       scroll_wheel_zoom)
 {
diff --git a/src/eog-scroll-view.h b/src/eog-scroll-view.h
index 7b6d095..f00fce6 100644
--- a/src/eog-scroll-view.h
+++ b/src/eog-scroll-view.h
@@ -54,7 +54,7 @@ void	 eog_scroll_view_set_background_color (EogScrollView *view,
 					       const GdkColor *color);
 void	 eog_scroll_view_override_bg_color (EogScrollView *view,
 					    const GdkColor *color);
-
+void     eog_scroll_view_set_use_bg_color (EogScrollView *view, gboolean use);
 /* zoom api */
 void     eog_scroll_view_zoom_in          (EogScrollView *view, gboolean smooth);
 void     eog_scroll_view_zoom_out         (EogScrollView *view, gboolean smooth);
diff --git a/src/eog-window.c b/src/eog-window.c
index 9c93e54..0839c73 100644
--- a/src/eog-window.c
+++ b/src/eog-window.c
@@ -122,6 +122,8 @@ enum {
 	EOG_WINDOW_NOTIFY_EXTRAPOLATE,
 	EOG_WINDOW_NOTIFY_SCROLLWHEEL_ZOOM,
 	EOG_WINDOW_NOTIFY_ZOOM_MULTIPLIER,
+	EOG_WINDOW_NOTIFY_BACKGROUND_COLOR,
+	EOG_WINDOW_NOTIFY_USE_BG_COLOR,
 	EOG_WINDOW_NOTIFY_TRANSPARENCY,
 	EOG_WINDOW_NOTIFY_TRANS_COLOR,
 	EOG_WINDOW_NOTIFY_SCROLL_BUTTONS,
@@ -374,6 +376,59 @@ eog_window_transparency_changed_cb (GConfClient *client,
 }
 
 static void
+eog_window_bg_color_changed_cb (GConfClient *client,
+				guint       cnxn_id,
+				GConfEntry  *entry,
+				gpointer    user_data)
+{
+	EogWindowPrivate *priv;
+	GdkColor color;
+	const char *color_str;
+
+	g_return_if_fail (EOG_IS_WINDOW (user_data));
+
+	eog_debug (DEBUG_PREFERENCES);
+
+	priv = EOG_WINDOW (user_data)->priv;
+
+	g_return_if_fail (EOG_IS_SCROLL_VIEW (priv->view));
+
+	if (entry->value != NULL && entry->value->type == GCONF_VALUE_STRING) {
+		color_str = gconf_value_get_string (entry->value);
+
+		if (gdk_color_parse (color_str, &color)) {
+			eog_scroll_view_set_background_color (EOG_SCROLL_VIEW (priv->view), &color);
+		}
+	}
+}
+
+static void
+eog_window_use_bg_color_changed_cb (GConfClient *client,
+				      guint       cnxn_id,
+				      GConfEntry  *entry,
+				      gpointer    user_data)
+{
+	EogWindowPrivate *priv;
+	gboolean use_bg_color = TRUE;
+
+	eog_debug (DEBUG_PREFERENCES);
+
+	g_return_if_fail (EOG_IS_WINDOW (user_data));
+
+	priv = EOG_WINDOW (user_data)->priv;
+
+	g_return_if_fail (EOG_IS_SCROLL_VIEW (priv->view));
+
+	if (entry->value != NULL && entry->value->type == GCONF_VALUE_BOOL) {
+		use_bg_color = gconf_value_get_bool (entry->value);
+	}
+
+	eog_scroll_view_set_use_bg_color (EOG_SCROLL_VIEW (priv->view),
+					  use_bg_color);
+}
+
+
+static void
 eog_window_trans_color_changed_cb (GConfClient *client,
 				   guint       cnxn_id,
 				   GConfEntry  *entry,
@@ -4528,6 +4583,24 @@ eog_window_construct_ui (EogWindow *window)
 	}
 
 	entry = gconf_client_get_entry (priv->client,
+					EOG_CONF_VIEW_BACKGROUND_COLOR,
+					NULL, TRUE, NULL);
+	if (entry != NULL) {
+		eog_window_bg_color_changed_cb (priv->client, 0, entry, window);
+		gconf_entry_unref (entry);
+		entry = NULL;
+	}
+
+	entry = gconf_client_get_entry (priv->client,
+					EOG_CONF_VIEW_USE_BG_COLOR,
+					NULL, TRUE, NULL);
+	if (entry != NULL) {
+		eog_window_use_bg_color_changed_cb (priv->client, 0, entry, window);
+		gconf_entry_unref (entry);
+		entry = NULL;
+	}
+
+	entry = gconf_client_get_entry (priv->client,
 					EOG_CONF_VIEW_TRANSPARENCY,
 					NULL, TRUE, NULL);
 	if (entry != NULL) {
@@ -4619,6 +4692,18 @@ eog_window_init (EogWindow *window)
 					 eog_window_zoom_multiplier_changed_cb,
 					 window, NULL, NULL);
 
+	priv->client_notifications[EOG_WINDOW_NOTIFY_BACKGROUND_COLOR] =
+		gconf_client_notify_add (window->priv->client,
+					 EOG_CONF_VIEW_BACKGROUND_COLOR,
+					 eog_window_bg_color_changed_cb,
+					 window, NULL, NULL);
+
+	priv->client_notifications[EOG_WINDOW_NOTIFY_USE_BG_COLOR] =
+		gconf_client_notify_add (window->priv->client,
+					 EOG_CONF_VIEW_USE_BG_COLOR,
+					 eog_window_use_bg_color_changed_cb,
+					 window, NULL, NULL);
+
 	priv->client_notifications[EOG_WINDOW_NOTIFY_TRANSPARENCY] =
 		gconf_client_notify_add (window->priv->client,
 					 EOG_CONF_VIEW_TRANSPARENCY,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]