]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/commitdiff
Prevent, in apply_configuration, a xrandr call that disables all screens
authorPhillip Berndt <phillip.berndt@googlemail.com>
Sun, 8 Mar 2015 17:14:06 +0000 (18:14 +0100)
committerPhillip Berndt <phillip.berndt@googlemail.com>
Sun, 8 Mar 2015 17:14:06 +0000 (18:14 +0100)
See pull request #20

autorandr.py

index 9dea362b1baf7e94b7649a22f5a36bff7bf4097f..2baa1b142ff3696f1215a6379fcb1c155a2a8664 100755 (executable)
@@ -462,6 +462,13 @@ def apply_configuration(configuration, dry_run=False):
         else:
             disable_outputs = disable_outputs[-1:]
 
+    # If disable_outputs still has more than one output in it, one of the xrandr-calls below would
+    # disable the last two screens. This is a problem, so if this would happen, instead disable only
+    # one screen in the first call below.
+    if len(disable_outputs) > 0 and len(disable_outputs) % 2 == 0:
+        # In the context of a xrandr call that changes the display change, `--query' should do nothing
+        disable_outputs.insert(0, ['--query'])
+
     # Enable the remaining outputs in pairs of two operations
     operations = disable_outputs + enable_outputs
     for index in range(0, len(operations), 2):