Bugfix: Ensure that all outputs have a ->con before handling disabled outputs (Thanks JimdiGriz)
Steps to reproduce: • xrandr --output VGA1 --auto • xrandr --output LVDS1 --off
This commit is contained in:
parent
3dd5552390
commit
28b9ed6eb3
18
src/randr.c
18
src/randr.c
|
@ -633,6 +633,18 @@ void randr_query_outputs() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Ensure that all outputs which are active also have a con. This is
|
||||||
|
* necessary because in the next step, a clone might get disabled. Example:
|
||||||
|
* LVDS1 active, VGA1 gets activated as a clone of LVDS1 (has no con).
|
||||||
|
* LVDS1 gets disabled. */
|
||||||
|
TAILQ_FOREACH(output, &outputs, outputs) {
|
||||||
|
if (output->active && output->con == NULL) {
|
||||||
|
DLOG("Need to initialize a Con for output %s\n", output->name);
|
||||||
|
output_init_con(output);
|
||||||
|
output->changed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Handle outputs which have a new mode or are disabled now (either
|
/* Handle outputs which have a new mode or are disabled now (either
|
||||||
* because the user disabled them or because they are clones) */
|
* because the user disabled them or because they are clones) */
|
||||||
TAILQ_FOREACH(output, &outputs, outputs) {
|
TAILQ_FOREACH(output, &outputs, outputs) {
|
||||||
|
@ -706,12 +718,6 @@ void randr_query_outputs() {
|
||||||
output->changed = false;
|
output->changed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (output->active && output->con == NULL) {
|
|
||||||
DLOG("Need to initialize a Con for output %s\n", output->name);
|
|
||||||
output_init_con(output);
|
|
||||||
output->changed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (output->changed) {
|
if (output->changed) {
|
||||||
output_change_mode(conn, output);
|
output_change_mode(conn, output);
|
||||||
output->changed = false;
|
output->changed = false;
|
||||||
|
|
Loading…
Reference in New Issue