[Xfce4-commits] [xfce/xfce4-settings] 01/01: Use proper fallback configuration on "apply" and "toggle off" (Bug #16476)
noreply at xfce.org
noreply at xfce.org
Mon Mar 30 00:51:49 CEST 2020
This is an automated email from the git hooks/post-receive script.
a l e x p u s h e d a c o m m i t t o b r a n c h x f c e - 4 . 1 4
in repository xfce/xfce4-settings.
commit d78ac6942eb1c13d6c23cee11a911aa7456babcf
Author: Alexander Schwinn <alexxcons at xfce.org>
Date: Sun Mar 15 01:24:04 2020 +0100
Use proper fallback configuration on "apply" and "toggle off"
(Bug #16476)
---
dialogs/display-settings/main.c | 51 +++++++++++++++++++++++++++--------------
1 file changed, 34 insertions(+), 17 deletions(-)
diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index dc52848..fd42f7a 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -333,6 +333,32 @@ display_setting_timed_confirmation (GtkBuilder *main_builder)
return ((response_id == 2) ? TRUE : FALSE);
}
+/*
+ * Encapsulates display_setting_timed_confirmation, automatically uses Fallback on FALSE
+ * Returns TRUE if the configuration was kept, FALSE if the configuration was replaced with the Fallback
+ */
+static gboolean
+display_setting_ask_fallback (GtkBuilder *builder)
+{
+ guint i = 0;
+
+ /* Ask user confirmation (or recover to'Fallback on timeout') */
+ if (display_setting_timed_confirmation (builder))
+ {
+ /* Update the Fallback */
+ for (i = 0; i < xfce_randr->noutput; i++)
+ xfce_randr_save_output (xfce_randr, "Fallback", display_channel, i);
+ return TRUE;
+ }
+ else
+ {
+ /* Recover to Fallback (will as well overwrite default xfconf settings) */
+ xfce_randr_apply (xfce_randr, "Fallback", display_channel);
+ foo_scroll_area_invalidate (FOO_SCROLL_AREA (randr_gui_area));
+ return FALSE;
+ }
+}
+
static void
display_setting_reflections_changed (GtkComboBox *combobox,
GtkBuilder *builder)
@@ -1143,16 +1169,12 @@ display_setting_output_toggled (GtkSwitch *widget,
gboolean output_on,
GtkBuilder *builder)
{
- RRMode old_mode;
-
if (!xfce_randr)
return FALSE;
if (xfce_randr->noutput <= 1)
return FALSE;
- old_mode = xfce_randr->mode[active_output];
-
if (output_on)
xfce_randr->mode[active_output] =
xfce_randr_preferred_mode (xfce_randr, active_output);
@@ -1175,18 +1197,7 @@ display_setting_output_toggled (GtkSwitch *widget,
foo_scroll_area_invalidate (FOO_SCROLL_AREA (randr_gui_area));
- /* Ask user confirmation */
- if (!display_setting_timed_confirmation (builder))
- {
- xfce_randr->mode[active_output] = old_mode;
- xfce_randr_save_output (xfce_randr, "Default", display_channel, active_output);
- xfce_randr_apply (xfce_randr, "Default", display_channel);
-
- foo_scroll_area_invalidate (FOO_SCROLL_AREA (randr_gui_area));
- return FALSE;
- }
-
- return TRUE;
+ return display_setting_ask_fallback (builder);
}
static void
@@ -1615,7 +1626,8 @@ display_setting_apply (GtkWidget *widget, GtkBuilder *builder)
xfce_randr_save_output (xfce_randr, "Default", display_channel, i);
xfce_randr_apply (xfce_randr, "Default", display_channel);
- /* TODO: Restore Confirmation Dialog */
+ display_setting_ask_fallback (builder);
+
gtk_widget_set_sensitive(widget, FALSE);
}
@@ -3881,6 +3893,7 @@ main (gint argc, gchar **argv)
const gchar *alternative = NULL;
const gchar *alternative_icon = NULL;
gint response;
+ guint i = 0;
/* Setup translation domain */
xfce_textdomain (GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
@@ -3988,6 +4001,10 @@ main (gint argc, gchar **argv)
goto cleanup;
}
+ /* Store a Fallback of the current settings */
+ for (i = 0; i < xfce_randr->noutput; i++)
+ xfce_randr_save_output (xfce_randr, "Fallback", display_channel, i);
+
if (xfce_randr->noutput <= 1 || !minimal)
display_settings_show_main_dialog (display);
else
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list