[Xfce4-commits] <xfce4-settings:bluesabre/display-settings> Merge branch 'bluesabre/display-settings' of ssh://git.xfce.org/xfce/xfce4-settings into bluesabre/display-settings

Sean Davis noreply at xfce.org
Thu Oct 25 01:58:03 CEST 2012


Updating branch refs/heads/bluesabre/display-settings
         to b6bf22d69bfc666c7cf140ff017291bd4646dbfc (commit)
       from 00d70e4258e69a5c47f7fd4623d806bc16332d18 (commit)

commit b6bf22d69bfc666c7cf140ff017291bd4646dbfc
Merge: 00d70e4 e3b0d41
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Wed Oct 24 19:53:37 2012 -0400

    Merge branch 'bluesabre/display-settings' of ssh://git.xfce.org/xfce/xfce4-settings into bluesabre/display-settings
    
    Changed TreeView to IconView

commit e3b0d41375feb7ef2f88897ed3d6c09c901ffd67
Author: Lionel Le Folgoc <lionel at lefolgoc.net>
Date:   Wed Oct 24 11:34:01 2012 +0200

    Clean up unneeded and duplicate variables
    
    Signed-off-by: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>

commit 44d2869a487b06e0c9b260cab616c9e128bb9e47
Author: Lionel Le Folgoc <lionel at lefolgoc.net>
Date:   Wed Oct 24 11:15:43 2012 +0200

    Fix activation/sensivity of toggle buttons (minimal dialog)
    
    And show the display name instead of "display1" "display2"
    
    Signed-off-by: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>

 dialogs/display-settings/main.c |  105 ++++++++++++++++++---------------------
 1 files changed, 49 insertions(+), 56 deletions(-)

diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index bcc9666..5f7fe63 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -61,13 +61,6 @@ enum
     N_COMBO_COLUMNS
 };
 
-typedef struct {
-    GtkBuilder *builder;
-    GdkDisplay  *display;
-    gint event_base;
-    GError *error;
-} minimal_advanced_context;
-
 
 
 typedef struct _XfceRelation XfceRelation;
@@ -1755,13 +1748,12 @@ screen_on_event (GdkXEvent *xevent,
 }
 
 static void
-display_settings_show_main_dialog (GdkDisplay  *display,
-                                   gint         event_base,
-                                   GError      *error)
+display_settings_show_main_dialog (GdkDisplay *display)
 {
     GtkBuilder  *builder;
     GtkWidget   *dialog, *plug;
     GObject     *plug_child;
+    GError      *error = NULL;
 
     /* Load the Gtk user-interface file */
     builder = gtk_builder_new ();
@@ -1770,13 +1762,12 @@ display_settings_show_main_dialog (GdkDisplay  *display,
     {
         /* Build the dialog */
         dialog = display_settings_dialog_new (builder);
-        randr_event_base = event_base;
         /* Set up notifications */
         XRRSelectInput (gdk_x11_display_get_xdisplay (display),
                         GDK_WINDOW_XID (gdk_get_default_root_window ()),
                         RRScreenChangeNotifyMask);
         gdk_x11_register_standard_event_type (display,
-                                              event_base,
+                                              randr_event_base,
                                               RRNotify + 1);
         gdk_window_add_filter (gdk_get_default_root_window (), screen_on_event, builder);
 
@@ -1828,40 +1819,33 @@ display_settings_show_main_dialog (GdkDisplay  *display,
 }
 
 static void
-display_settings_minimal_advanced_clicked(GtkButton                *button,
-                                          minimal_advanced_context *context)
+display_settings_minimal_advanced_clicked (GtkButton  *button,
+                                           GtkBuilder *builder)
 {
     GtkWidget *dialog;
 
-    dialog = GTK_WIDGET (gtk_builder_get_object (context->builder, "dialog"));
+    dialog = GTK_WIDGET (gtk_builder_get_object (builder, "dialog"));
     gtk_widget_hide (dialog);
 
-    display_settings_show_main_dialog (context->display, context->event_base, context->error);
+    display_settings_show_main_dialog (gdk_display_get_default ());
 
     gtk_main_quit ();
 }
 
 static void
-display_settings_show_minimal_dialog (GdkDisplay  *display,
-                                      gint         event_base,
-                                      GError      *error)
+display_settings_show_minimal_dialog (GdkDisplay *display)
 {
-    GtkBuilder               *builder;
-    GtkWidget                *dialog, *cancel;
-    GObject                  *only_display1, *only_display2, *mirror_displays;
-    GObject                  *extend_right, *advanced, *fake_button;
-    minimal_advanced_context  context;
+    GtkBuilder *builder;
+    GtkWidget  *dialog, *cancel;
+    GObject    *only_display1, *only_display2, *mirror_displays;
+    GObject    *extend_right, *advanced, *fake_button, *label;
+    GError     *error = NULL;
 
     builder = gtk_builder_new ();
 
     if (gtk_builder_add_from_string (builder, minimal_display_dialog_ui,
                                      minimal_display_dialog_ui_length, &error) != 0)
     {
-        context.builder = builder;
-        context.display = display;
-        context.event_base = event_base;
-        context.error = error;
-
         /* Build the minimal dialog */
         dialog = GTK_WIDGET (gtk_builder_get_object (builder, "dialog"));
         cancel = GTK_WIDGET (gtk_builder_get_object (builder, "cancel_button"));
@@ -1878,30 +1862,44 @@ display_settings_show_minimal_dialog (GdkDisplay  *display,
 
         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fake_button), TRUE);
 
-        //
+        label = gtk_builder_get_object (builder, "label1");
+        gtk_label_set_text (GTK_LABEL (label), xfce_randr->friendly_name[0]);
+
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (only_display1),
+                                      xfce_randr->mode[0] != None);
+
         if (xfce_randr->noutput > 1)
         {
-            gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (only_display1),
-                                         xfce_randr->mode[0] != None);
+            label = gtk_builder_get_object (builder, "label4");
+            gtk_label_set_text (GTK_LABEL (label), xfce_randr->friendly_name[1]);
             gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (only_display2),
-                                         xfce_randr->mode[1] != None);
+                                          xfce_randr->mode[1] != None);
+
+            if (xfce_randr->mode[0] != None && xfce_randr->mode[1] != None)
+            {
+                /* Check for mirror */
+                if ((xfce_randr->relation[1] == XFCE_RANDR_PLACEMENT_MIRROR &&
+                    xfce_randr->related_to[1] == 0) || (xfce_randr->related_to[0] == 1 &&
+                    xfce_randr->relation[0] == XFCE_RANDR_PLACEMENT_MIRROR))
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mirror_displays),
+                                                  TRUE);
+
+                /* Check for Extend Right */
+                if ((xfce_randr->relation[1] == XFCE_RANDR_PLACEMENT_RIGHT &&
+                    xfce_randr->related_to[1] == 0) || (xfce_randr->related_to[0] == 1 &&
+                    xfce_randr->relation[1] == XFCE_RANDR_PLACEMENT_LEFT))
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (extend_right),
+                                                  TRUE);
+            }
         }
         else
         {
-            /* Check for mirror */
-            if (xfce_randr->relation[1] == XFCE_RANDR_PLACEMENT_MIRROR &&
-                xfce_randr->related_to[1] == 0)
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mirror_displays),
-                                              TRUE);
-
-            /* Check for Extend Right */
-            if (xfce_randr->relation[1] == XFCE_RANDR_PLACEMENT_RIGHT &&
-                xfce_randr->related_to[1] == 0)
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (extend_right),
-                                              TRUE);
+            /* Only one output, disable other buttons */
+            gtk_widget_set_sensitive (GTK_WIDGET (mirror_displays), FALSE);
+            gtk_widget_set_sensitive (GTK_WIDGET (extend_right), FALSE);
+            gtk_widget_set_sensitive (GTK_WIDGET (only_display2), FALSE);
         }
 
-        //
         g_signal_connect (only_display1, "toggled", G_CALLBACK (display_settings_minimal_only_display1_toggled),
                           builder);
         g_signal_connect (mirror_displays, "toggled", G_CALLBACK (display_settings_minimal_mirror_displays_toggled),
@@ -1911,7 +1909,7 @@ display_settings_show_minimal_dialog (GdkDisplay  *display,
         g_signal_connect (only_display2, "toggled", G_CALLBACK (display_settings_minimal_only_display2_toggled),
                           builder);
         g_signal_connect (advanced, "clicked", G_CALLBACK (display_settings_minimal_advanced_clicked),
-                          (gpointer*)&context);
+                          builder);
 
         /* Show the minimal dialog and start the main loop */
         gtk_window_present (GTK_WINDOW (dialog));
@@ -1933,7 +1931,7 @@ main (gint argc, gchar **argv)
     GdkDisplay  *display;
     GError      *error = NULL;
     gboolean     succeeded = TRUE;
-    gint         event_base, error_base;
+    gint         error_base;
     gchar       *command;
     const gchar *alternative = NULL;
     const gchar *alternative_icon = NULL;
@@ -1979,7 +1977,7 @@ main (gint argc, gchar **argv)
     display = gdk_display_get_default ();
 
     /* Check if the randr extension is avaible on the system */
-    if (!XRRQueryExtension (gdk_x11_display_get_xdisplay (display), &event_base, &error_base))
+    if (!XRRQueryExtension (gdk_x11_display_get_xdisplay (display), &randr_event_base, &error_base))
     {
         g_set_error (&error, 0, 0, _("Unable to query the version of the RandR extension being used"));
         xfce_dialog_show_error (NULL, error, _("Unable to start the Xfce Display Settings"));
@@ -2042,16 +2040,11 @@ main (gint argc, gchar **argv)
             return EXIT_FAILURE;
 
         if (xfce_randr->noutput <= 1 || !minimal)
-        {
-            display_settings_show_main_dialog( display, event_base, error );
-        }
+            display_settings_show_main_dialog (display);
         else
-        {
-            display_settings_show_minimal_dialog ( display, event_base, error );
-        }
-
-        cleanup:
+            display_settings_show_minimal_dialog (display);
 
+cleanup:
         /* Release the channel */
         g_object_unref (G_OBJECT (display_channel));
     }


More information about the Xfce4-commits mailing list