Trying out the new email list - thinking about refactoring
Alan Griffiths
alan.griffiths at canonical.com
Wed Mar 13 12:56:32 UTC 2013
Working through some recent MPs it has become apparent to me that some
refactoring would clarify the code.
shell::SessionStore = > frontend::Shell
This is an interface defining a dependency of
frontend::ApplicationMediator (so it should be in frontend) and has
operations on it that don't fit the current name. What it does fit is
the functionality that frontend needs from a shell.
shell::Session = > frontend::Session
shell::Surface = > frontend::Surface
Similarly, these define what frontend::ApplicationMediator needs and the
dependencies belongs in frontend.
~~~~
frontend::ApplicationMediator =>
frontend::SessionMediator
frontend::ApplicationMediatorReport =>
frontend::SessionMediatorReport
frontend::ApplicationMediator::application_session =>
SessionMediator::session
Now that the session compositing use case is becoming clear it is
apparent that ApplicationMediator isn't specific to applications. It
mediates both system and user sessions.
~~~~
surfaces::ProxySurface => shell::Window (or shell::Surface? cf above)
The base class (shell::Surface = > frontend::Surface) is being populated
with additional functionality that belongs to shell and not to surfaces.
There's some rework about constructing these objects - that should move
into shell too.
What to folks think? Anything to add to the list?
More information about the Mir-devel
mailing list