[Xfce4-commits] <xfce4-settings:master> Fix visibility of elements depending on the number of outputs
Nick Schermer
noreply at xfce.org
Sun Oct 28 10:45:11 CET 2012
Updating branch refs/heads/master
to e8be92f29a55eb71168a1c26d94e4a326166664a (commit)
from 28cf05504c8f800ff56b208fc9b8cead7a423726 (commit)
commit e8be92f29a55eb71168a1c26d94e4a326166664a
Author: Lionel Le Folgoc <lionel at 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.steinbeiss at 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
{
More information about the Xfce4-commits
mailing list