need way to position menus and tooltips (relative positioning to parent)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alberto Aguirre | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Without:
(a) knowing root-relative coordinates
and
(b) having a way to specify that a window is created at a given position
it is not possible to correctly position menus and toolbars.
It would be nice if we either got those things or if Mir were to provide a mechanism by which we could specify a relative offset within our window and the display server take care of adjusting things if needed.
The amount of adjustments required may be pretty complex, though:
- move menus in from the side of the screen if they would run off
- if it's a submenu and we move it in, we may rather need to move it to the other side of its parent menu
- we also need to consider different rules for combobox-style popups
Related branches
- Cemil Azizoglu (community): Needs Resubmitting
- Robert Carr (community): Disapprove
- PS Jenkins bot (community): Approve (continuous-integration)
- Alberto Aguirre (community): Abstain
- Alan Griffiths: Needs Resubmitting
-
Diff: 498 lines (+191/-10)21 files modifiedclient-ABI-sha1sums (+1/-1)
common-ABI-sha1sums (+1/-1)
include/common/mir_toolkit/common.h (+6/-0)
include/server/mir/frontend/session.h (+2/-0)
include/server/mir/frontend/surface.h (+3/-0)
platform-ABI-sha1sums (+1/-1)
server-ABI-sha1sums (+3/-3)
src/server/frontend/session_mediator.cpp (+1/-2)
src/server/scene/application_session.cpp (+17/-0)
src/server/scene/application_session.h (+1/-0)
src/server/scene/basic_surface.cpp (+37/-0)
src/server/scene/basic_surface.h (+5/-0)
tests/include/mir_test_doubles/mock_frontend_surface.h (+3/-0)
tests/include/mir_test_doubles/mock_surface.h (+3/-0)
tests/include/mir_test_doubles/stub_scene_session.h (+4/-0)
tests/include/mir_test_doubles/stub_scene_surface.h (+2/-0)
tests/include/mir_test_doubles/stub_session.h (+4/-0)
tests/unit-tests/client/test_client_mir_surface.cpp (+2/-1)
tests/unit-tests/scene/test_application_session.cpp (+46/-0)
tests/unit-tests/scene/test_basic_surface.cpp (+14/-1)
tests/unit-tests/scene/test_surface_impl.cpp (+35/-0)
- PS Jenkins bot (community): Approve (continuous-integration)
- Cemil Azizoglu (community): Disapprove
- Alan Griffiths: Disapprove
- Andreas Pokorny (community): Needs Fixing
- Robert Carr (community): Needs Fixing
- Alberto Aguirre (community): Needs Fixing
-
Diff: 289 lines (+145/-1)13 files modifiedclient-ABI-sha1sums (+1/-1)
include/client/mir_toolkit/mir_surface.h (+16/-0)
src/client/connection_surface_map.h (+1/-0)
src/client/mir_connection.cpp (+5/-0)
src/client/mir_connection.h (+3/-0)
src/client/mir_surface.cpp (+7/-0)
src/client/mir_surface.h (+1/-0)
src/client/mir_surface_api.cpp (+22/-0)
src/client/surface_map.cpp (+7/-0)
src/client/surface_map.h (+1/-0)
tests/acceptance-tests/test_client_library.cpp (+43/-0)
tests/acceptance-tests/test_client_surface_events.cpp (+33/-0)
tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+5/-0)
- Chris Halse Rogers: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
- Alan Griffiths: Approve
- Robert Carr (community): Approve
- Daniel van Vugt: Abstain
- Cemil Azizoglu (community): Approve
-
Diff: 479 lines (+190/-46)17 files modifiedclient-ABI-sha1sums (+2/-2)
common-ABI-sha1sums (+1/-1)
include/client/mir_toolkit/mir_surface.h (+34/-0)
include/common/mir_toolkit/common.h (+7/-0)
include/server/mir/scene/surface_creation_parameters.h (+6/-0)
platform-ABI-sha1sums (+1/-1)
server-ABI-sha1sums (+2/-2)
src/client/mir_surface.cpp (+8/-0)
src/client/mir_surface.h (+2/-0)
src/client/mir_surface_api.cpp (+19/-0)
src/client/symbols.map (+5/-1)
src/include/common/mir/require.h (+0/-32)
src/protobuf/mir_protobuf.proto (+3/-0)
src/server/frontend/session_mediator.cpp (+11/-0)
src/server/scene/surface_creation_parameters.cpp (+12/-0)
tests/acceptance-tests/test_client_surfaces.cpp (+22/-2)
tests/integration-tests/client/test_mirsurface.cpp (+55/-5)
- Alan Griffiths: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
- Robert Carr (community): Approve
- Chris Halse Rogers: Needs Fixing
-
Diff: 520 lines (+290/-41)13 files modifiedclient-ABI-sha1sums (+1/-1)
include/client/mir_toolkit/mir_surface.h (+87/-4)
include/server/mir/scene/surface_creation_parameters.h (+2/-2)
server-ABI-sha1sums (+1/-1)
src/client/mir_surface.cpp (+5/-6)
src/client/mir_surface.h (+1/-1)
src/client/mir_surface_api.cpp (+50/-8)
src/client/symbols.map (+3/-1)
src/protobuf/mir_protobuf.proto (+1/-1)
src/server/frontend/session_mediator.cpp (+4/-4)
src/server/scene/surface_creation_parameters.cpp (+2/-2)
tests/acceptance-tests/test_client_surfaces.cpp (+52/-1)
tests/integration-tests/client/test_mirsurface.cpp (+81/-9)
Changed in mir: | |
status: | New → Triaged |
tags: | added: gtk-mir |
Changed in mir: | |
importance: | Undecided → Medium |
Changed in mir: | |
importance: | Medium → High |
assignee: | nobody → Chris Halse Rogers (raof) |
tags: | added: next |
Changed in mir: | |
assignee: | Chris Halse Rogers (raof) → nobody |
Changed in mir: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
summary: |
- need way to position menus and tooltips + need way to position menus and tooltips (relative positioning to parent) |
Changed in mir: | |
milestone: | none → 0.9.0 |
Changed in mir: | |
status: | Triaged → In Progress |
Changed in mir: | |
status: | In Progress → Triaged |
Changed in mir: | |
milestone: | 0.9.0 → 0.10.0 |
Changed in mir: | |
assignee: | Daniel van Vugt (vanvugt) → nobody |
Changed in mir: | |
assignee: | nobody → Alberto Aguirre (albaguirre) |
Changed in mir: | |
status: | Triaged → In Progress |
Changed in mir: | |
milestone: | 0.10.0 → 0.11.0 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Although I said I would not... if Alberto is busy and if the contentious protocol bits are landed already, then I would be willing to make another attempt at this.