Mir

Merge lp:~kdub/mir/fix-1612256 into lp:mir

Proposed by Kevin DuBois
Status: Merged
Approved by: Alan Griffiths
Approved revision: no longer in the source branch.
Merged at revision: 3644
Proposed branch: lp:~kdub/mir/fix-1612256
Merge into: lp:mir
Diff against target: 61 lines (+29/-5)
2 files modified
src/client/mir_surface.cpp (+3/-3)
tests/unit-tests/client/test_client_mir_surface.cpp (+26/-2)
To merge this branch: bzr merge lp:~kdub/mir/fix-1612256
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Alan Griffiths Approve
Review via email: mp+302804@code.launchpad.net

Commit message

Have the MirSurface report the shell-designated size like it used to, instead of the spec-requested size.

fixes: LP: #1612256

Description of the change

Have the MirSurface report the shell-designated size like it used to, instead of the spec-requested size.

fixes: LP: #1612256

cherry picking to 0.24

To post a comment you must log in.
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

/o\

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3644
https://mir-jenkins.ubuntu.com/job/mir-ci/1443/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1773
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1827
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1818
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1818
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1818
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/1797
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/1797/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1797
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1797/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1797
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1797/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1797
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1797/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1797
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1797/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1797
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1797/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1443/rebuild

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/client/mir_surface.cpp'
2--- src/client/mir_surface.cpp 2016-06-24 07:41:32 +0000
3+++ src/client/mir_surface.cpp 2016-08-12 13:18:30 +0000
4@@ -127,9 +127,9 @@
5 keymapper(std::make_shared<mircv::XKBMapper>()),
6 configure_result{mcl::make_protobuf_object<mir::protobuf::SurfaceSetting>()},
7 creation_handle(handle),
8- size(spec.width.is_set() && spec.height.is_set() ? geom::Size{spec.width.value(), spec.height.value()} : geom::Size{0,0}),
9- format(spec.pixel_format.is_set() ? spec.pixel_format.value() : mir_pixel_format_invalid),
10- usage(spec.buffer_usage.is_set() ? spec.buffer_usage.value() : mir_buffer_usage_hardware),
11+ size({surface_proto.width(), surface_proto.height()}),
12+ format(static_cast<MirPixelFormat>(surface_proto.pixel_format())),
13+ usage(static_cast<MirBufferUsage>(surface_proto.buffer_usage())),
14 output_id(spec.output_id.is_set() ? spec.output_id.value() : static_cast<uint32_t>(mir_display_output_id_invalid))
15 {
16 for(int i = 0; i < surface_proto.attributes_size(); i++)
17
18=== modified file 'tests/unit-tests/client/test_client_mir_surface.cpp'
19--- tests/unit-tests/client/test_client_mir_surface.cpp 2016-08-10 10:43:39 +0000
20+++ tests/unit-tests/client/test_client_mir_surface.cpp 2016-08-12 13:18:30 +0000
21@@ -555,14 +555,38 @@
22 EXPECT_CALL(*mock_stream, set_size(size));
23 auto ev = mir::events::make_event(mir::frontend::SurfaceId(2), size);
24
25+ surface_proto.set_width(size.width.as_int());
26+ surface_proto.set_height(size.height.as_int());
27+
28 MirSurface surface{connection.get(), *client_comm_channel, nullptr,
29 mock_stream, mock_input_platform, spec, surface_proto, wh};
30
31 auto params = surface.get_parameters();
32- EXPECT_THAT(params.width, Eq(spec.width.value()));
33- EXPECT_THAT(params.height, Eq(spec.height.value()));
34+ EXPECT_THAT(params.width, Eq(size.width.as_int()));
35+ EXPECT_THAT(params.height, Eq(size.height.as_int()));
36 surface.handle_event(*ev);
37 params = surface.get_parameters();
38 EXPECT_THAT(params.width, Eq(size.width.as_int()));
39 EXPECT_THAT(params.height, Eq(size.height.as_int()));
40 }
41+
42+//LP: #1612256
43+TEST_F(MirClientSurfaceTest, initial_sizes_are_from_response_from_server)
44+{
45+ using namespace testing;
46+ auto mock_stream = std::make_shared<mtd::MockClientBufferStream>();
47+ auto mock_input_platform = std::make_shared<NiceMock<MockClientInputPlatform>>();
48+ ON_CALL(*mock_input_platform, create_input_receiver(_,_,_))
49+ .WillByDefault(Return(std::make_shared<mt::TestDispatchable>([]{})));
50+ ON_CALL(*mock_stream, rpc_id()).WillByDefault(Return(mir::frontend::BufferStreamId(2)));
51+ geom::Size size(120, 124);
52+
53+ surface_proto.set_width(size.width.as_int());
54+ surface_proto.set_height(size.height.as_int());
55+ MirSurface surface{connection.get(), *client_comm_channel, nullptr,
56+ mock_stream, mock_input_platform, spec, surface_proto, wh};
57+
58+ auto params = surface.get_parameters();
59+ EXPECT_THAT(params.width, Eq(size.width.as_int()));
60+ EXPECT_THAT(params.height, Eq(size.height.as_int()));
61+}

Subscribers

People subscribed via source and target branches