Unity 8.0 Window Management

Registered by kevin gunn

Design and implement Unity 8 window management

13.06 - land all the updated i/f support for Unity8 so a user can download phablet build with mir/unity8 working by default

Blueprint information

Unity Team
Needs approval
Unity Team
Series goal:
Accepted for saucy
Milestone target:
milestone icon ubuntu-13.10
Started by
kevin gunn
Completed by
kevin gunn

Related branches



June 6th, 2013 Saviq:
some notes about the OSK integration:
• in-process
 ∘ limiting 3rd party to QML as the toolkit
     [dandrader] AFAIU, that's not true. we can still have OSKs as Maliit plugins even if going for the in-process approach.
 ∘ potential danger for stability
• out-of-process ← we're going for that now
 ∘ current solution
 ∘ requires some priviliges for the OSK surface
  ‣ cheap solution: the shell to send a secret to the OSK that it will connect to Mir with (current solution for system compositor)
  ‣ the OSK would then tag its surface for a certain type
  ‣ security-wise we could come up with a better scheme for the above later
 ∘ is there a problem with the current DBus approach
  ‣ support required in the toolkit
  ‣ security considerations
  ‣ trying to route through Mir will require work in the input layer as the communication between OSK and application is more involved - selecting/replacing words etc.
Some reading about Maliit's planned Wayland support https://wiki.maliit.org/Ideas/Wayland_Support

May 31, 2013 kgunn
for driving the conversation, mini milestone document to achieve use cases with unity-mir

May 31 2013 mathijs:
Please consider re-enabling the original three-finger gestures as described here: https://wiki.ubuntu.com/Multitouch#Supported_Gestures
Currently these only work for touchscreens, not touchpads in 13.04, eventhough widely used (see bug: https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1172172)

Apr 16 2013 kgunn:
Design feedback on "edge" magic input - need to have filter & replay capability
per discussion with Arch & Design, the shell will be the master of input "gestures" and have first right of refusal....at which point the shell may act e.g. to show launcher or bottom bar....or pass the "gesture" on to the app which is showing (or in a way, "behind the shell")
More detail from design here https://docs.google.com/a/canonical.com/document/d/1bu05Pg4BdsnMbZTIMxOs9IkDJAfylWB-4y6L-iGfbJg/edit#heading=h.9ovwbp53b0cm


Work Items

Work items for ubuntu-13.05:
[dandrader] create shell fmwk to handle interaction with gesture recoginition (a DirectionalDragArea component was created): DONE
[dandrader] model worst case shell-decision-time from first touch (showed a demo to Saviq in last sprint): DONE
[dandrader] Make Launcher use DirectionalDragArea for detecting edge-drag gestures: DONE

Work items for ubuntu-13.06:
[gerboland] create unity-mir layer for full unity shell integration for both rendering & input, this is the control layer from unity to mir for 13.10 for Touch: DONE
[gerboland] request apis from Mir team, at least first one, for focus / next surface: DONE
[dandrader] Make Stage use DirectionalDragArea for detecting edge-drag gestures: DONE
[dandrader] Add a minimum speed constraint to DirectionalDragArea: DONE
[dandrader] Remove hint animations from right and left edge drags (launcher and stage): DONE
[dandrader] Only switch applications if a proper edge-swipe of significant length (half screen width) is performed: DONE

Work items for ubuntu-13.07:
[gerboland] make unity8 an upstart session: DONE
[gerboland] document any mir api shortcomings/wishlist from unity integration effort: DONE
[dandrader] Make Panel use DirectionalDragArea instead of Revealer: DONE

Work items for ubuntu-13.08:
[dandrader] need mallit to have a way to announce to shell its been requested by the application - so the shell can then allow the osk surface to be visible (or vice versa): DONE
[gerboland] provide Ubuntu.Application for the desktop (common app mgmt, it could be moved into a seperate plugin): DONE
[gerboland] collect some profiling data; start up to first frame render, render performance (do we have something sub 60fps to compare? might talk to veebers...this seems akin to his task): DONE

Dependency tree

* Blueprints in grey have been implemented.