[Xfce4-commits] <xfce4-settings:master> Do less work when an output is disabled
Nick Schermer
noreply at xfce.org
Sat Aug 28 23:04:59 CEST 2010
Updating branch refs/heads/master
to 9302d4b1d1049504c4bbd37bbd6657a19a0d76b1 (commit)
from 0c761d7b6a4fac14619cb33ffdc60ccf68bfb0e4 (commit)
commit 9302d4b1d1049504c4bbd37bbd6657a19a0d76b1
Author: Lionel Le Folgoc <mrpouit at gmail.com>
Date: Sun Jun 27 19:08:03 2010 +0200
Do less work when an output is disabled
When an output is disabled, simply clear the comboboxes, mark them as
insensitive, and return. Fill them only if the output is enabled.
dialogs/display-settings/main.c | 121 ++++++++++++++++++++++++--------------
1 files changed, 76 insertions(+), 45 deletions(-)
diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index 2a52cc2..e5a9dd2 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -274,7 +274,21 @@ display_setting_reflections_populate (GtkBuilder *builder)
guint n;
GtkTreeIter iter;
+ if (!xfce_randr)
+ return;
+
+ /* get the combo box store and clear it */
combobox = gtk_builder_get_object (builder, "randr-reflection");
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
+ gtk_list_store_clear (GTK_LIST_STORE (model));
+
+ /* disable it if no mode is selected */
+ if (XFCE_RANDR_MODE (xfce_randr) == None)
+ {
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), FALSE);
+ return;
+ }
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), TRUE);
/* Disconnect the "changed" signal to avoid triggering the confirmation
* dialog */
@@ -282,37 +296,26 @@ display_setting_reflections_populate (GtkBuilder *builder)
display_setting_reflections_changed,
builder, NULL);
- /* get the combo box store and clear it */
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
- gtk_list_store_clear (GTK_LIST_STORE (model));
+ /* load only supported reflections */
+ reflections = XFCE_RANDR_ROTATIONS (xfce_randr) & XFCE_RANDR_REFLECTIONS_MASK;
+ active_reflection = XFCE_RANDR_ROTATION (xfce_randr) & XFCE_RANDR_REFLECTIONS_MASK;
-
- if (xfce_randr)
+ /* try to insert the reflections */
+ for (n = 0; n < G_N_ELEMENTS (reflection_names); n++)
{
- /* disable it if no mode is selected */
- gtk_widget_set_sensitive (GTK_WIDGET (combobox), XFCE_RANDR_MODE (xfce_randr) != None);
-
- /* load only supported reflections */
- reflections = XFCE_RANDR_ROTATIONS (xfce_randr) & XFCE_RANDR_REFLECTIONS_MASK;
- active_reflection = XFCE_RANDR_ROTATION (xfce_randr) & XFCE_RANDR_REFLECTIONS_MASK;
-
- /* try to insert the reflections */
- for (n = 0; n < G_N_ELEMENTS (reflection_names); n++)
+ if ((reflections & reflection_names[n].rotation) == reflection_names[n].rotation)
{
- if ((reflections & reflection_names[n].rotation) == reflection_names[n].rotation)
- {
- /* insert */
- gtk_list_store_append (GTK_LIST_STORE (model), &iter);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- COLUMN_COMBO_NAME, _(reflection_names[n].name),
- COLUMN_COMBO_VALUE, reflection_names[n].rotation, -1);
+ /* insert */
+ gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+ COLUMN_COMBO_NAME, _(reflection_names[n].name),
+ COLUMN_COMBO_VALUE, reflection_names[n].rotation, -1);
- /* select active reflection */
- if (xfce_randr && XFCE_RANDR_MODE (xfce_randr) != None)
- {
- if ((reflection_names[n].rotation & active_reflection) == reflection_names[n].rotation)
- gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter);
- }
+ /* select active reflection */
+ if (xfce_randr && XFCE_RANDR_MODE (xfce_randr) != None)
+ {
+ if ((reflection_names[n].rotation & active_reflection) == reflection_names[n].rotation)
+ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter);
}
}
}
@@ -390,6 +393,21 @@ display_setting_rotations_populate (GtkBuilder *builder)
/* get the combo box store and clear it */
combobox = gtk_builder_get_object (builder, "randr-rotation");
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
+ gtk_list_store_clear (GTK_LIST_STORE (model));
+
+#ifdef HAS_RANDR_ONE_POINT_TWO
+ if (xfce_randr)
+ {
+ /* disable it if no mode is selected */
+ if (XFCE_RANDR_MODE (xfce_randr) == None)
+ {
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), FALSE);
+ return;
+ }
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), TRUE);
+ }
+#endif
/* Disconnect the "changed" signal to avoid triggering the confirmation
* dialog */
@@ -397,15 +415,9 @@ display_setting_rotations_populate (GtkBuilder *builder)
display_setting_rotations_changed,
builder, NULL);
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
- gtk_list_store_clear (GTK_LIST_STORE (model));
-
#ifdef HAS_RANDR_ONE_POINT_TWO
if (xfce_randr)
{
- /* disable it if no mode is selected */
- gtk_widget_set_sensitive (GTK_WIDGET (combobox), XFCE_RANDR_MODE (xfce_randr) != None);
-
/* load only supported rotations */
rotations = XFCE_RANDR_ROTATIONS (xfce_randr) & XFCE_RANDR_ROTATIONS_MASK;
active_rotation = XFCE_RANDR_ROTATION (xfce_randr) & XFCE_RANDR_ROTATIONS_MASK;
@@ -519,6 +531,21 @@ display_setting_refresh_rates_populate (GtkBuilder *builder)
/* get the combo box store and clear it */
combobox = gtk_builder_get_object (builder, "randr-refresh-rate");
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
+ gtk_list_store_clear (GTK_LIST_STORE (model));
+
+#ifdef HAS_RANDR_ONE_POINT_TWO
+ if (xfce_randr)
+ {
+ /* disable it if no mode is selected */
+ if (XFCE_RANDR_MODE (xfce_randr) == None)
+ {
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), FALSE);
+ return;
+ }
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), TRUE);
+ }
+#endif
/* Disconnect the "changed" signal to avoid triggering the confirmation
* dialog */
@@ -526,15 +553,9 @@ display_setting_refresh_rates_populate (GtkBuilder *builder)
display_setting_refresh_rates_changed,
builder, NULL);
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
- gtk_list_store_clear (GTK_LIST_STORE (model));
-
#ifdef HAS_RANDR_ONE_POINT_TWO
if (xfce_randr)
{
- /* disable it if no mode is selected */
- gtk_widget_set_sensitive (GTK_WIDGET (combobox), XFCE_RANDR_MODE (xfce_randr) != None);
-
/* fetch the selected resolution */
res_combobox = gtk_builder_get_object (builder, "randr-resolution");
if (!display_setting_combo_box_get_value (GTK_COMBO_BOX (res_combobox), &n))
@@ -682,6 +703,22 @@ display_setting_resolutions_populate (GtkBuilder *builder)
/* get the combo box store and clear it */
combobox = gtk_builder_get_object (builder, "randr-resolution");
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
+ gtk_list_store_clear (GTK_LIST_STORE (model));
+
+#ifdef HAS_RANDR_ONE_POINT_TWO
+ if (xfce_randr)
+ {
+ /* disable it if no mode is selected */
+ if (XFCE_RANDR_MODE (xfce_randr) == None)
+ {
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), FALSE);
+ display_setting_refresh_rates_populate (builder);
+ return;
+ }
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), TRUE);
+ }
+#endif
/* Disconnect the "changed" signal to avoid triggering the confirmation
* dialog */
@@ -689,15 +726,9 @@ display_setting_resolutions_populate (GtkBuilder *builder)
display_setting_resolutions_changed,
builder, NULL);
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
- gtk_list_store_clear (GTK_LIST_STORE (model));
-
#ifdef HAS_RANDR_ONE_POINT_TWO
if (xfce_randr)
{
- /* disable it if no mode is selected */
- gtk_widget_set_sensitive (GTK_WIDGET (combobox), XFCE_RANDR_MODE (xfce_randr) != None);
-
/* walk all supported modes */
modes = XFCE_RANDR_SUPPORTED_MODES (xfce_randr);
for (n = 0; n < XFCE_RANDR_OUTPUT_INFO (xfce_randr)->nmode; ++n)
More information about the Xfce4-commits
mailing list