Updating branch refs/heads/bluesabre/display-settings to e8be92f29a55eb71168a1c26d94e4a326166664a (commit) from 28cf05504c8f800ff56b208fc9b8cead7a423726 (commit)
commit e8be92f29a55eb71168a1c26d94e4a326166664a Author: Lionel Le Folgoc <lio...@lefolgoc.net> Date: Wed Oct 17 23:50:42 2012 +0200 Fix visibility of elements depending on the number of outputs And connect signals even when only 1 output is present, since hot-plug is supported (Bug #8327). Signed-off-by: Simon Steinbeiss <simon.steinbe...@elfenbeinturm.at> dialogs/display-settings/display-dialog.glade | 2 +- dialogs/display-settings/main.c | 46 +++++++++++++++++++++---- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/dialogs/display-settings/display-dialog.glade b/dialogs/display-settings/display-dialog.glade index 8bce601..c7357a3 100644 --- a/dialogs/display-settings/display-dialog.glade +++ b/dialogs/display-settings/display-dialog.glade @@ -210,7 +210,7 @@ </packing> </child> <child> - <object class="GtkLabel" id="label1"> + <object class="GtkLabel" id="label-position"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c index eb66c75..c7e5332 100644 --- a/dialogs/display-settings/main.c +++ b/dialogs/display-settings/main.c @@ -385,7 +385,7 @@ static void display_setting_positions_populate (GtkBuilder *builder) { GtkTreeModel *model; - GObject *combobox, *mirror_displays; + GObject *combobox, *label, *mirror_displays; GtkTreeIter iter; guint n; @@ -394,6 +394,19 @@ display_setting_positions_populate (GtkBuilder *builder) model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)); gtk_list_store_clear (GTK_LIST_STORE (model)); + label = gtk_builder_get_object (builder, "label-position"); + if (xfce_randr->noutput > 1) + { + gtk_widget_show (GTK_WIDGET (label)); + gtk_widget_show (GTK_WIDGET (combobox)); + } + else + { + gtk_widget_hide (GTK_WIDGET (label)); + gtk_widget_hide (GTK_WIDGET (combobox)); + return; + } + /* Only make the combobox interactive if there is more than one output, and if they are not in mirror mode */ mirror_displays = gtk_builder_get_object (builder, "mirror-displays"); @@ -455,6 +468,14 @@ display_setting_active_displays_populate (GtkBuilder *builder) model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)); gtk_list_store_clear (GTK_LIST_STORE (model)); + if (xfce_randr->noutput > 1) + gtk_widget_show (GTK_WIDGET (combobox)); + else + { + gtk_widget_hide (GTK_WIDGET (combobox)); + return; + } + /* Only make the combobox interactive if there is more than one output, and if they are not in mirror mode */ mirror_displays = gtk_builder_get_object (builder, "mirror-displays"); @@ -1179,6 +1200,14 @@ display_setting_mirror_displays_populate (GtkBuilder *builder) check = gtk_builder_get_object (builder, "mirror-displays"); + if (xfce_randr->noutput > 1) + gtk_widget_show (GTK_WIDGET (check)); + else + { + gtk_widget_hide (GTK_WIDGET (check)); + return; + } + /* Can outputs be cloned? */ if (display_settings_get_n_active_outputs () > 1) mode = xfce_randr_clonable_mode (xfce_randr); @@ -1268,11 +1297,16 @@ display_setting_output_status_populate (GtkBuilder *builder) if (!xfce_randr) return; - if (xfce_randr->noutput <= 1) - return; - check = gtk_builder_get_object (builder, "output-on"); + if (xfce_randr->noutput > 1) + gtk_widget_show (GTK_WIDGET (check)); + else + { + gtk_widget_hide (GTK_WIDGET (check)); + return; + } + /* Disconnect the "toggled" signal to avoid writing the config again */ g_object_disconnect (check, "any_signal::toggled", display_setting_output_toggled, @@ -1471,12 +1505,12 @@ display_settings_dialog_new (GtkBuilder *builder) /* Setup the combo boxes */ check = gtk_builder_get_object (builder, "output-on"); mirror = gtk_builder_get_object (builder, "mirror-displays"); + g_signal_connect (G_OBJECT (check), "toggled", G_CALLBACK (display_setting_output_toggled), builder); + g_signal_connect (G_OBJECT (mirror), "toggled", G_CALLBACK (display_setting_mirror_displays_toggled), builder); if (xfce_randr->noutput > 1) { gtk_widget_show (GTK_WIDGET (check)); - g_signal_connect (G_OBJECT (check), "toggled", G_CALLBACK (display_setting_output_toggled), builder); gtk_widget_show (GTK_WIDGET (mirror)); - g_signal_connect (G_OBJECT (mirror), "toggled", G_CALLBACK (display_setting_mirror_displays_toggled), builder); } else { _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits