[Xfce4-commits] <xfdesktop:eric/bugzilla-patches> Stretch background across all monitors setting

Eric Koegel noreply at xfce.org
Sun Feb 19 21:34:05 CET 2012


Updating branch refs/heads/eric/bugzilla-patches
         to 9cf3b10cf57a6e5f9a07536ef6056ce321abbc90 (commit)
       from 0af2c17f9ff3f3a64da7bc3f07ce06cf6bb107fc (commit)

commit 9cf3b10cf57a6e5f9a07536ef6056ce321abbc90
Author: Eric Koegel <eric.koegel at gmail.com>
Date:   Thu Feb 9 16:48:12 2012 +0300

    Stretch background across all monitors setting
    
    Added a 'Stretch background across all monitors.' checkbox to the
    xfdesktop-settings app. It will only be visible on the first monitor tab and
    only when multiple monitors are present. Bug 5690

 settings/main.c                                    |   19 +++++++++++++++++++
 .../xfdesktop-settings-appearance-frame-ui.glade   |   16 ++++++++++++++++
 2 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/settings/main.c b/settings/main.c
index 9442f30..62bcbff 100644
--- a/settings/main.c
+++ b/settings/main.c
@@ -107,6 +107,8 @@ typedef struct
 
     GtkWidget *backdrop_cycle_spinbox;
     GtkWidget *backdrop_cycle_chkbox;
+
+    GtkWidget *chk_xinerama_stretch;
 } AppearancePanel;
 
 typedef struct
@@ -1460,6 +1462,23 @@ xfdesktop_settings_dialog_add_screens(GtkBuilder *main_gxml,
             g_signal_connect(G_OBJECT(panel->btn_newlist), "clicked",
                              G_CALLBACK(newlist_button_clicked), panel);
 
+            panel->chk_xinerama_stretch = GTK_WIDGET(gtk_builder_get_object(appearance_gxml,
+                                                                            "chk_xinerama_stretch"));
+
+            /* The first monitor has the option of doing the xinerama-stretch,
+             * but only if there's multiple monitors attached. Make it invisible
+             * in all other cases.
+             */
+            if(j == 0 && nmonitors > 1) {
+                g_snprintf(buf, sizeof(buf), "/backdrop/screen%d/xinerama-stretch",
+                           i);
+                xfconf_g_property_bind(channel, buf, G_TYPE_BOOLEAN,
+                                        G_OBJECT(panel->chk_xinerama_stretch), "active");
+                gtk_widget_set_sensitive(panel->chk_xinerama_stretch, TRUE);
+            } else {
+                gtk_widget_hide(panel->chk_xinerama_stretch);
+            }
+
             panel->backdrop_cycle_chkbox = GTK_WIDGET(gtk_builder_get_object(appearance_gxml,
                                                                              "chk_cycle_backdrop"));
             panel->backdrop_cycle_spinbox = GTK_WIDGET(gtk_builder_get_object(appearance_gxml,
diff --git a/settings/xfdesktop-settings-appearance-frame-ui.glade b/settings/xfdesktop-settings-appearance-frame-ui.glade
index caf55fc..a397d94 100644
--- a/settings/xfdesktop-settings-appearance-frame-ui.glade
+++ b/settings/xfdesktop-settings-appearance-frame-ui.glade
@@ -576,6 +576,22 @@
           <property name="position">2</property>
         </packing>
       </child>
+      <child>
+        <object class="GtkCheckButton" id="chk_xinerama_stretch">
+          <property name="visible">True</property>
+          <property name="sensitive">False</property>
+          <property name="can_focus">True</property>
+          <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+          <property name="label" translatable="yes">St_retch this background across all monitors.</property>
+          <property name="tooltip-text" translatable="yes">When multiple monitors are present, select this option to stretch the current background over all of them.</property>
+          <property name="use_underline">True</property>
+          <property name="draw_indicator">True</property>
+        </object>
+        <packing>
+          <property name="expand">False</property>
+          <property name="position">3</property>
+        </packing>
+      </child>
       </object>
     </child>
   </object>


More information about the Xfce4-commits mailing list