Mir surface management
This blueprint includes activities to support surface management features, not exclusively but primarily for unity-mir.
Trusty now released, please see https:/
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- kevin gunn
- Direction:
- Needs approval
- Assignee:
- Mir development team
- Definition:
- New
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Daniel van Vugt
- Completed by
- kevin gunn
Related branches
Related bugs
Sprints
Whiteboard
PLEASE SEE https:/
====Mir Surface Management====
Working with design on surface placement & behavioral policies, this is a proposed plan of attack for implementing/
Qt demo application (and later chromium) will be used for validating the concepts.
This list assumes that works off the knowledge that we have some shell (full screen, windowed/
* arbitrary resize of non-fullscreen regular surface (screen avail to minimum)
* maximize, minimize of a non-fullscreen, veritcal/horizontal snap/maximizing
* alt+tab (or right edge gesture) for regular surfaces
* snap-to-edge & unsnap of regular surfaces (sidestage/
* rotate regular surface reflow & input
* alt+tab (or right edge gesture) for snapped surfaces & unrelated surfaces
* show surface z order behavior render order/input for all surface types (single app, multi app), maybe add in presence rules (e.g. can't have a child without a parent) note: it would be nice to have dynamic toggles for the presence of particular surface types & perspective view (similar to spread)
* child surface spawning, movement (w/ and w/o parent), dismissal, exit (w/ and w/o parent)
* child surface w/ regular surface parent maximize/minimize
* child & parent rotation including input
* non-full screen regular surface with app & system chrome support
* maximized/
* rotation including chrome
* full screen of regular surface with app & system chrome support (where chrome hides)
* content sharing/drag-drop with hinting (e.g. surface highlighting for those that can take the content type)
* spread for multi surfaces incl multi surfaces for 1 app (e.g. 2 regular surfaces, or child+parent)
* workspace concept (collection of surfaces, behavior of surface type in workspace, e.g. no orphans)
* multimonitor for multiple surfaces (including differing resolutions) & moving surfaces from one to the other
* multimonitor for multiple workspaces & changing workspaces
Work Items
Work items for ubuntu-13.11:
[vanvugt] Window resizing: DONE
Work items for ubuntu-13.12:
[alan-griffiths] add support for shell to broadcast rotation events and for apps to express limits at runtime (e.g. "i only support portrait right now" & "i'm an app that would like to rotate mr shell") marking as DONE as this was covered by opaque msg channel: DONE
Work items for ubuntu-14.03:
[andreas-pokorny] Input surface transformation (rotation, https:/
Dependency tree
* Blueprints in grey have been implemented.