From 208070ff85d979fb8c8b1c187c47dfecf1cf21aa Mon Sep 17 00:00:00 2001 From: Leif Middelschulte Date: Wed, 14 Dec 2011 17:37:38 +0000 Subject: [PATCH] Use selective storing for configuration data. This enables that only parts of the configuration is stored. Right now only implemented: policies vs. everything. SVN revision: 66220 --- .../conf_display/e_int_config_display.c | 2 +- src/modules/conf_randr/e_int_config_randr.c | 28 +++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/modules/conf_display/e_int_config_display.c b/src/modules/conf_display/e_int_config_display.c index 60ac4c5cd..55b75aa4c 100644 --- a/src/modules/conf_display/e_int_config_display.c +++ b/src/modules/conf_display/e_int_config_display.c @@ -92,7 +92,7 @@ _surebox_dialog_cb_yes(void *data, E_Dialog *dia) man = e_manager_current_get(); ecore_x_randr_screen_primary_output_current_size_get(man->root, &c_size.width, &c_size.height, NULL, NULL, NULL); - e_randr_store_configuration(e_randr_screen_info); + e_randr_store_configuration(e_randr_screen_info, E_RANDR_CONFIGURATION_STORE_ALL); _fill_data(sb->cfdata); _load_resolutions(sb->cfdata); diff --git a/src/modules/conf_randr/e_int_config_randr.c b/src/modules/conf_randr/e_int_config_randr.c index ae4c11caf..3b3f64bc1 100644 --- a/src/modules/conf_randr/e_int_config_randr.c +++ b/src/modules/conf_randr/e_int_config_randr.c @@ -242,11 +242,35 @@ static void _e_conf_randr_confirmation_dialog_store_cb(void *data, E_Dialog *dia) { E_Config_Randr_Dialog_Confirmation_Dialog_Data *cdd = (E_Config_Randr_Dialog_Confirmation_Dialog_Data *)data; + E_Randr_Configuration_Store_Modifier modifier = 0; if (!cdd) return; - _e_conf_randr_confirmation_dialog_keep_cb(data, dia); - e_randr_store_configuration(e_randr_screen_info); + //Create modifier + if (dialog_subdialog_policies_basic_check_changed(NULL, e_config_runtime_info)) + modifier |= E_RANDR_CONFIGURATION_STORE_POLICIES; + + if (dialog_subdialog_resolutions_basic_check_changed(NULL, e_config_runtime_info)) + modifier |= E_RANDR_CONFIGURATION_STORE_RESOLUTIONS; + + if (dialog_subdialog_arrangement_basic_check_changed(NULL, e_config_runtime_info)) + modifier |= E_RANDR_CONFIGURATION_STORE_ARRANGEMENT; + + if (dialog_subdialog_orientation_basic_check_changed(NULL, e_config_runtime_info)) + modifier |= E_RANDR_CONFIGURATION_STORE_ORIENTATIONS; + + //ordinary "keep" functionality + dialog_subdialog_arrangement_keep_changes(cdd->cfdata); + dialog_subdialog_orientation_keep_changes(cdd->cfdata); + dialog_subdialog_policies_keep_changes(cdd->cfdata); + dialog_subdialog_resolutions_keep_changes(cdd->cfdata); + + //cleanup dialog + _e_conf_randr_confirmation_dialog_delete_cb(dia->win); + + //but actually trigger saving the stuff + e_randr_store_configuration(e_randr_screen_info, modifier); + } static void