This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch devs/thanatermesis/e_randr2-fixes
in repository enlightenment.
View the commit online.
commit 1193a7c70c29522392dec35cd2bb2649fa751d58
Author: Samuel F. Baggen <thanaterme...@gmail.com>
AuthorDate: Tue Jul 2 01:33:42 2024 -0500
when disabling a screen, set other's rel_to to 'none'
When a screen is disabled, other screens should not have a reference to
it, otherwise this can lead bugs like in the mirror/clone mode,
if the resolutions are changed, other screens will change too
---
src/modules/conf_randr/e_int_config_randr2.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/modules/conf_randr/e_int_config_randr2.c b/src/modules/conf_randr/e_int_config_randr2.c
index f1c66e645..41e137cc6 100644
--- a/src/modules/conf_randr/e_int_config_randr2.c
+++ b/src/modules/conf_randr/e_int_config_randr2.c
@@ -783,6 +783,22 @@ _cb_enabled_changed(void *data, Evas_Object *obj, void *event EINA_UNUSED)
cs->enabled = elm_check_state_get(obj);
printf("RR: enabled = %i\n", cs->enabled);
e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
+
+ // for every rel_to that points to the disabled screen, set its rel_mode to point to "none"
+ if (!cs->enabled)
+ {
+ Eina_List *l;
+ E_Config_Randr2_Screen *other_cs;
+ EINA_LIST_FOREACH(cfdata->screens, l, other_cs)
+ {
+ if (!other_cs) continue;
+ if (other_cs->rel_to && strcmp(other_cs->rel_to, cs->id) == 0)
+ {
+ other_cs->rel_mode = E_RANDR2_RELATIVE_NONE;
+ e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
+ }
+ }
+ }
}
static void
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.