Client display configuration notification

Christopher James Halse Rogers christopher.halse.rogers at canonical.com
Wed Sep 30 04:04:00 UTC 2015


Forked from review¹.

I think we're currently handling display configuration events 
incorrectly, or at least in a way that will be surprising to clients.

When the hardware configuration changes we send the new configuration 
to all clients. However, if a client has specified a different display 
configuration then we *don't* change it. The upshot is that 
mir_connection_create_display_configuration() will *not* return the 
currently active display configuration.

Furthermore, we clear the session's configuration cache, so if a 
session with custom configuration loses focus and then gains focus 
again it will *not* have its previous configuration applied.

This seems like confusing behaviour, which becomes even more confusing 
when the shell gets to change the default display configuration.

I'm not entirely sure what our behaviour *should* be, though I think 
that we should at least:

a) When hardware configuration changes we should verify that any 
session-set config remains valid (for example: was the only display 
that session had enabled removed?), update the session-set config, and 
submit that to the client so that create_display_configuration() will 
report the *actual* display configuration.

b) Have a way for a client to revert to default display configuration.

Hmmm.

¹: 
https://code.launchpad.net/~raof/mir/display-configuration-for-the-shell/+merge/272692/comments/687576




More information about the Mir-devel mailing list