Comment 26 for bug 2020782

Revision history for this message
Mustafa Kemal Gilor (mustafakemalgilor) wrote :

Hello Daniel,

I've also been debugging this issue and noticed something weird while reproducing it. It seems that resizing the screen via resizing the NICE DCV client does not invoke the `meta_monitor_config_manager_set_current` method, so the current config and the history are untouched.

Let's say we have an initial resolution of QxZ@T hz, sf 1(scale factor). The NICE DCV client screen resize changes it to WxH@F sf 1.5, but libmutter still thinks the screen is at QxZ@T sf 1. At this point,
 `xrandr` output no longer shows QxZ@T hz as a supported resolution. When the user tries to change the scale, the change is registered as both the resolution change and the scale change as per the perspective of "libmutter", and if the user proceeds to accept this configuration, everything is fine because the Xdcv already lists `WxH@F` as a supported resolution, but if not (i.e. user tries to revert back to the previous) it fails because QxZ@T hz is no longer on the supported resolution set.

Therefore, I think one of the problems we're facing here is libmutter/Xdcv being out-of-sync when the screen resolution is changed via the NICE DCV client. I'm currently looking into how we can reflect the client resolutions to libmutter (I'm not well-versed in mutter codebase so progressing a little bit slow)

I'll continue to post my findings as I progress.