Merge lp:~alan-griffiths/mir/support-gdk_window_move_to_rect into lp:mir
| Status: | Merged |
|---|---|
| Merged at revision: | 3685 |
| Proposed branch: | lp:~alan-griffiths/mir/support-gdk_window_move_to_rect |
| Merge into: | lp:mir |
| Diff against target: |
588 lines (+366/-12) 13 files modified
include/client/mir_toolkit/mir_surface.h (+33/-1) include/client/mir_toolkit/version.h (+2/-2) include/common/mir_toolkit/common.h (+94/-1) include/server/mir/scene/surface_creation_parameters.h (+6/-1) include/server/mir/shell/surface_specification.h (+6/-1) src/client/mir_connection.cpp (+6/-1) src/client/mir_surface.cpp (+6/-1) src/client/mir_surface.h (+6/-1) src/client/mir_surface_api.cpp (+24/-1) src/client/symbols.map (+1/-0) src/protobuf/mir_protobuf.proto (+13/-0) src/server/frontend/session_mediator.cpp (+11/-1) tests/acceptance-tests/test_custom_window_management.cpp (+158/-1) |
| To merge this branch: | bzr merge lp:~alan-griffiths/mir/support-gdk_window_move_to_rect |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Mir CI Bot | continuous-integration | Needs Fixing on 2016-09-06 | |
| Chris Halse Rogers | Approve on 2016-09-05 | ||
| Kevin DuBois (community) | Approve on 2016-09-01 | ||
| Gerry Boland | vote | 2016-08-31 | Approve on 2016-09-01 |
|
Review via email:
|
|||
Commit Message
Add the API and IPC required to pass the surface placement requests needed to support gdk_window_
| Chris Halse Rogers (raof) wrote : | # |
190 + optional_
191 + optional_
192 + optional_
193 + optional_value<int> aux_rect_
194 + optional_value<int> aux_rect_
It seems like these values only ever make sense to be set together? Should this be rolled into a single
optional_
Otherwise looks sensible to me. There's presumably a follow-up message where Mir tells the client where the surface was actually placed?
| Alan Griffiths (alan-griffiths) wrote : | # |
> 190 + optional_
> 191 + optional_
> 192 + optional_
> 193 + optional_value<int> aux_rect_
> 194 + optional_value<int> aux_rect_
>
> It seems like these values only ever make sense to be set together? Should
> this be rolled into a single
> optional_
I did think about that, but there's an overlap with...
optional_
optional_
...which once might also have been said to only make sense together. In the end I decided
that this imposed fewer restrictions on future evolution of the code. It only affects a small part of the system.
> Otherwise looks sensible to me. There's presumably a follow-up message where
> Mir tells the client where the surface was actually placed?
I've intentionally left that out of scope for this MP as we don't currently notify the result of edge attachments and our policy on what placement information to disclose isn't clear to me.
| Gerry Boland (gerboland) wrote : | # |
Looks ok to me. API comprehensive enough for GTK's needs.
| Kevin DuBois (kdub) wrote : | # |
I guess the one-way requesting without confirmation or denial of the requests still is something that confuses me a bit in general about the placement/
curiousity (since your testing opinions are typically more well-formed than mine)
+ EXPECT_
+ if (spec.placement
+ EXPECT_
why not:
ASSERT_
EXPECT_
nits/needs fixing:
extra indentation:
+ mir_placement_
+ mir_placement_
+ mir_placement_
+ optional_value<int> aux_rect_
+ optional_value<int> aux_rect_
why not optional_
| Alan Griffiths (alan-griffiths) wrote : | # |
> I guess the one-way requesting without confirmation or denial of the requests
> still is something that confuses me a bit in general about the
> placement/
> place a surface in a certain way.
>
> curiousity (since your testing opinions are typically more well-formed than
> mine)
>
> + EXPECT_
> + if (spec.placement
> + EXPECT_
>
> why not:
> ASSERT_
> EXPECT_
Because this callback is happening on the wrong thread, we want a report on any incorrect expectations and to ensure we raise the signal (not wait for a timeout).
> nits/needs fixing:
> extra indentation:
> + mir_placement_
> mir_placement_
> + mir_placement_
> mir_placement_
> + mir_placement_
> mir_placement_
Fixed.
> + optional_value<int> aux_rect_
> + optional_value<int> aux_rect_
> why not optional_
We have more regular code if we match the protobuf structures:
+ COPY_IF_
+ COPY_IF_
...
+ COPY_IF_
+ COPY_IF_
The MirAL interface (which is what I want downstreams to use) does wrap this:
+ if (params.
+ aux_rect_
| Alan Griffiths (alan-griffiths) wrote : | # |
> Because this callback is happening on the wrong thread, we want a report on
> any incorrect expectations
I.e. Not just the first.
| William Hua (attente) wrote : | # |
Looks good, it isn't clear to me how the positioning feedback will work exactly. Will it be via a configure event? Or is that postponed to another branch?
| Alan Griffiths (alan-griffiths) wrote : | # |
> Looks good, it isn't clear to me how the positioning feedback will work
> exactly. Will it be via a configure event? Or is that postponed to another
> branch?
I left position feedback out of this MP because it will cause discussion. I need to do some investigation to determine the minimum information needed, and if there's prior art to follow in Weston.
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3686
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3688
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| Alan Griffiths (alan-griffiths) wrote : | # |
10:09:23 11: [ FAILED ] NestedServer.
Known flaky test: lp:1523621
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
https:/
Executed test runs:
FAILURE: https:/
None: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
https:/
Executed test runs:
FAILURE: https:/
None: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/

PASSED: Continuous integration, rev:3685 /mir-jenkins. ubuntu. com/job/ mir-ci/ 1586/ /mir-jenkins. ubuntu. com/job/ build-mir/ 1986 /mir-jenkins. ubuntu. com/job/ build-0- fetch/2046 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 2037 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 2037 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 2037 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= yakkety/ 2012 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= yakkety/ 2012/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2012 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2012/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 2012 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 2012/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 2012 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 2012/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 2012 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 2012/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2012 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2012/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 1586/rebuild
https:/