RFC Evolving Mir support for writing shells
Alan Griffiths
alan.griffiths at canonical.com
Tue Mar 24 16:03:51 UTC 2015
On 24/03/15 12:50, Gerry Boland wrote:
> On 23/03/15 13:12, Alan Griffiths wrote:
>> 2. The shell writer can inherit from ShellWrapper override a few
>> functions and "get something working".
> AbstractShell/WindowManager more powerful than this, happy to let it go.
> I wasn't using it anyway.
At the moment USC is using it. I have MP'd a change to fix that:
https://code.launchpad.net/~alan-griffiths/unity-system-compositor/use-WindowMangager-NOT-ShellWrapper/+merge/252933
<https://code.launchpad.net/%7Ealan-griffiths/unity-system-compositor/use-WindowMangager-NOT-ShellWrapper/+merge/252933>
>
>> 3. The shell writer can inherit from AbstractShell override a few
>> functions and "get something working".
> This class satisfies QtMir's needs, allowing the use of a custom
> renderer and input targetting. It does demand a lot of work in QtMir
> side to re-implement Mir classes however, so is quite clumsy to operate.
>
> Minor point is I'd rather it didn't contain concept of "focus", as IMO
> that's a window management concept.
I can understand that. It currently works this way to connect the window
manager to the existing focus notification mechanisms.
>
>> 4. The shell writer can implement the WindowManager interface and
>> supply their window manager to AbstractShell and "get something
>> working".
> I anticipate this class could evolve to satisfy QtMir's needs. It has a
> much nicer API than AbstractShell, but does appear to demand using Mir's
> default renderer and input event management - things QtMir has
> overridden. If that's the intention, then QtMir will remain with
> AbstractShell, as it needs the additional power.
I hope it is orthogonal to the choice of render and input event management.
>
>> qtmir combines approaches 3 & 4 - it could migrate to 4 alone, but I
>> don't yet have a POC.
> I'm open to your ideas on the matter!
It is on my list.
>> The questions raised by my OP:
>>
>> 0. should we replace the legacy
>> DefaultShell/PlacementStrategy/SurfaceConfigurator with
>> CanonicalWindowManager?
> Y
https://code.launchpad.net/~alan-griffiths/mir/default-to-canonical-window-manager/+merge/253950
<https://code.launchpad.net/%7Ealan-griffiths/mir/default-to-canonical-window-manager/+merge/253950>
>
>> 1. Should a shell::BasicWindowManager template be public, supported
>> and used by examples? Or should it be private and copy exist in
>> examples?
> Private + copy
ditto
>
>> 2. Should shell::CanonicalWindowManagerPolicy just be a "snapshot"
>> of example::CanonicalWindowManagerPolicy which could remain for
>> experimentation or should the code move?
> Private + copy for now, can revisit later when it matures and wanted by
> shell.
ditto
>
>> 3. We have some tests and playground that are coupled to the
>> PlacementStrategy & SurfaceConfigurator used with
>> DefaultWindowManager but I don't think these configuration points
>> are needed downstream. Are we happy to "unpublish" them (for now)
>> but keep them to support the legacy code in tests and playground?
> I'd be happy to unpublish.
https://code.launchpad.net/~alan-griffiths/mir/unpublish-legacy-window-managment-customization/+merge/253967
<https://code.launchpad.net/%7Ealan-griffiths/mir/unpublish-legacy-window-managment-customization/+merge/253967>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/mir-devel/attachments/20150324/8641d43f/attachment.html>
More information about the Mir-devel
mailing list