When powering off a screen and powering it on again, the value of output_info->connection is always 1 (=RR_Disconnected). Hence, the rest of the surrounding loop's iteration is skipped, no modes are detected, etc.
According to my current understanding (which might be completely erroneous) of how the code works, this is wrong and it could hint to the actual cause of the issue - which I'm still unable to identify.
Further observations:
xfce_displays_helper_list_outputs is called twice in displays.c - once by xfce_displays_helper_init(...) and once by xfce_displays_helper_reload(...). In the former case, (output_info->connection != RR_Connected) is false for one of my outputs, thus modes are getting detected, etc. In the latter, it is not.
Can anybody assess whether or not I am on the right track?
Any help debugging this would still be greatly appreciated. :)
I am currently stuck analyzing this issue. The following considerations refer to commit dbd76eb58bd9d7a 55de753daa5572e f24867d924.
After adding lots of debug output to displays.c, I noticed a potential issue in
static GPtrArray* xfce_displays_ helper_ list_outputs (XfceDisplaysHe lper*)
which contains the line of
if (output_ info->connectio n != RR_Connected)
When powering off a screen and powering it on again, the value of output_ info->connectio n is always 1 (=RR_Disconnected). Hence, the rest of the surrounding loop's iteration is skipped, no modes are detected, etc.
According to my current understanding (which might be completely erroneous) of how the code works, this is wrong and it could hint to the actual cause of the issue - which I'm still unable to identify.
Further observations:
xfce_displays_ helper_ list_outputs is called twice in displays.c - once by xfce_displays_ helper_ init(.. .) and once by xfce_displays_ helper_ reload( ...). In the former case, (output_ info->connectio n != RR_Connected) is false for one of my outputs, thus modes are getting detected, etc. In the latter, it is not.
Can anybody assess whether or not I am on the right track?
Any help debugging this would still be greatly appreciated. :)