[Enhancement] Add an API to adjust preferred surface orientation at runtime
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Wishlist
|
Alberto Aguirre | ||
mir (Ubuntu) |
Fix Released
|
Wishlist
|
Unassigned | ||
qtmir (Ubuntu) |
Triaged
|
High
|
Unassigned |
Bug Description
Sometimes, applications are written to take advantage of the entire surface of screen. So they need a way to tell MIR, the orientation they want for drawing themselves. This can be portrait for some, landscape for others, or even combinations.
Without this feature, portrait application get distorted when running in a landscape oriented device.
So, it would be nice to have an API, in MIR client, to precisely lock the orientation of the MirSurface used for drawing.
My use case is a full-screen game, that require always Portrait Orientation. Another is a full-screen game that requires always Landscape.
Better (future):
- allow this even for non full-screen applications
- allow combination like Portait+
- allow to change the orientation when the application run (so not only when creating/requesting the surface).
Remarks :
- touch event may need to be translated into the correct coordinates system!
Related branches
- Alan Griffiths: Approve
- Gerry Boland (community): Approve
- Kevin DuBois (community): Approve
- Alexandros Frantzis (community): Approve
- Robert Carr (community): Approve
- Andreas Pokorny (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 326 lines (+140/-7)14 files modifiedclient-ABI-sha1sums (+2/-2)
common-ABI-sha1sums (+1/-1)
include/client/mir_toolkit/mir_surface.h (+17/-0)
include/common/mir_toolkit/common.h (+15/-0)
platform-ABI-sha1sums (+1/-1)
server-ABI-sha1sums (+1/-1)
src/client/mir_surface.cpp (+7/-0)
src/client/mir_surface.h (+2/-1)
src/client/mir_surface_api.cpp (+33/-0)
src/server/scene/basic_surface.cpp (+23/-0)
src/server/scene/basic_surface.h (+2/-0)
tests/acceptance-tests/test_client_surface_events.cpp (+16/-0)
tests/unit-tests/client/test_client_mir_surface.cpp (+2/-1)
tests/unit-tests/scene/test_surface_impl.cpp (+18/-0)
summary: |
- [Enhancement] Add an API to lock screen orientation + [Enhancement] Add an API to lock window orientation |
description: | updated |
summary: |
- [Enhancement] Add an API to lock window orientation + [Enhancement] Add an API to lock window/screen orientation |
description: | updated |
description: | updated |
summary: |
- [Enhancement] Add an API to lock window/screen orientation + [Enhancement] Add an API to lock surface orientation |
description: | updated |
description: | updated |
description: | updated |
Changed in mir: | |
importance: | Undecided → Wishlist |
status: | New → Triaged |
tags: | added: enhancement |
Changed in mir: | |
assignee: | nobody → Alberto Aguirre (albaguirre) |
milestone: | none → 0.10.0 |
status: | Triaged → In Progress |
Changed in mir: | |
status: | In Progress → Fix Committed |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in qtmir (Ubuntu): | |
status: | Confirmed → Triaged |
no longer affects: | qtmir |
just a note of update, I am putting this in our team's "list of stuff" we want to address soon