Mir

Merge lp:~alan-griffiths/mir/fix-1493741 into lp:mir

Proposed by Alan Griffiths
Status: Merged
Approved by: Chris Halse Rogers
Approved revision: no longer in the source branch.
Merged at revision: 2918
Proposed branch: lp:~alan-griffiths/mir/fix-1493741
Merge into: lp:mir
Prerequisite: lp:~alan-griffiths/mir/fix-1491937
Diff against target: 64 lines (+42/-0)
2 files modified
src/server/scene/mediating_display_changer.cpp (+2/-0)
tests/acceptance-tests/test_nested_mir.cpp (+40/-0)
To merge this branch: bzr merge lp:~alan-griffiths/mir/fix-1493741
Reviewer Review Type Date Requested Status
Chris Halse Rogers Approve
Kevin DuBois (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+270570@code.launchpad.net

Commit message

scene: Ensure that the active application can get the correct display configuration

Description of the change

scene: Ensure that the active application can get the correct display configuration

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

lgtm

review: Approve
Revision history for this message
Chris Halse Rogers (raof) wrote :

Yup, sensible. I was looking through here recently thinking things were a bit incorrect!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/server/scene/mediating_display_changer.cpp'
2--- src/server/scene/mediating_display_changer.cpp 2015-09-09 17:27:56 +0000
3+++ src/server/scene/mediating_display_changer.cpp 2015-09-09 17:27:56 +0000
4@@ -246,10 +246,12 @@
5 if (it != config_map.end())
6 {
7 apply_config(it->second, PauseResumeSystem);
8+ session->send_display_config(*it->second);
9 }
10 else if (!base_configuration_applied)
11 {
12 apply_base_config(PauseResumeSystem);
13+ session->send_display_config(*base_configuration);
14 }
15 }
16
17
18=== modified file 'tests/acceptance-tests/test_nested_mir.cpp'
19--- tests/acceptance-tests/test_nested_mir.cpp 2015-09-09 17:27:56 +0000
20+++ tests/acceptance-tests/test_nested_mir.cpp 2015-09-09 17:27:56 +0000
21@@ -423,3 +423,43 @@
22 mir_surface_release_sync(painted_surface);
23 mir_connection_release(connection);
24 }
25+
26+namespace
27+{
28+void config_update(MirConnection* /*connection*/, void* context)
29+{
30+ static_cast<mt::WaitCondition*>(context)->wake_up_everyone();
31+}
32+}
33+
34+// lp:1493741
35+TEST_F(NestedServer, display_configuration_changes_are_visible_to_client_when_it_becomes_active)
36+{
37+ NestedMirRunner nested_mir{new_connection()};
38+ ignore_rebuild_of_egl_context();
39+
40+ auto const connection = mir_connect_sync(nested_mir.new_connection().c_str(), __PRETTY_FUNCTION__);
41+
42+ mt::WaitCondition condition;
43+ mir_connection_set_display_config_change_callback(connection, &config_update, &condition);
44+
45+ auto const configuration = mir_connection_create_display_config(connection);
46+
47+ for(auto* output = configuration->outputs; output != configuration->outputs+configuration->num_outputs; ++ output)
48+ output->orientation = mir_orientation_left;
49+
50+ mir_wait_for(mir_connection_apply_display_config(connection, configuration));
51+
52+ // Need a painted surface to have focus
53+ auto const painted_surface = make_and_paint_surface(connection);
54+
55+ condition.wait_for_at_most_seconds(1);
56+
57+ auto const new_config = mir_connection_create_display_config(connection);
58+ EXPECT_THAT(new_config->outputs->orientation, Eq(configuration->outputs->orientation));
59+ mir_display_config_destroy(new_config);
60+
61+ mir_display_config_destroy(configuration);
62+ mir_surface_release_sync(painted_surface);
63+ mir_connection_release(connection);
64+}

Subscribers

People subscribed via source and target branches