Mir

Code review comment for lp:~vanvugt/mir/managed-surface

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

*Needs Discussion*

I think that my dislike of this and related branches comes from inconsistencies that have crept into the design of Mir.

We started Mir with the intent to have an MVC structure to our system with the model being the shared data representation of the system state, the views being subsystems like compositor, frontend and input and the controller being where the the shell plugs in.

But through a series of pragmatic decisions we've got to a point that is far away from there. There are items missing from the "model" we have in scene (like the output devices), there are things in the model that belong to the controller (like the surface state), there are interactions that bypass the controller and update the model (like the frontend creating surfaces on a session instead of forwarding the request to the shell).

It sort-of-works but it gets increasingly clunky and I think we can usefully rework towards the original intent.

This MP continues in this misguided direction by putting logic and data to handle surface state changes into the model (as ManagedSurface). It is like saying that because the walls of a building are not sound we'll fit a shelf by building a scaffold outside and mount the shelf on a pair of horizontals that come through the window.

I think the right approach is to fix the current architecture rather that trying to work around it. Clearly that implies we should first agree what needs fixing and how.

review: Needs Information

« Back to merge proposal