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.

Reply via email to