65
66
Workspaces& test_fixture;
69
struct TestWindow : Surface, Window
71
using Surface::operator=;
72
using Window::operator=;
68
75
struct Workspaces : public miral::TestServer
70
auto create_window(std::string const& name) -> Window
77
auto create_window(std::string const& name) -> TestWindow
72
auto const window = WindowSpec::for_normal_window(client_connection, 50, 50, mir_pixel_format_argb_8888)
73
.set_buffer_usage(mir_buffer_usage_software)
81
result = Surface{mir_connection_create_render_surface_sync(client_connection, 50, 50)};
82
result = WindowSpec::for_normal_window(client_connection, 50, 50)
74
83
.set_name(name.c_str())
84
.add_surface(result, 50, 50, 0, 0)
77
client_windows[name] = window;
87
client_windows[name] = result;
83
void init_window(Window const& window)
93
void init_window(TestWindow const& window)
85
95
mir::test::Signal window_ready;
86
96
EXPECT_CALL(policy(), advise_window_ready(_)).WillOnce(InvokeWithoutArgs([&]{ window_ready.raise(); }));
88
mir_buffer_stream_swap_buffers_sync(mir_window_get_buffer_stream(window));
98
mir_buffer_stream_swap_buffers_sync(
99
mir_render_surface_get_buffer_stream(window, 50, 50, mir_pixel_format_argb_8888));
90
101
EXPECT_TRUE(window_ready.wait_for(1s));
93
auto create_tip(std::string const& name, Window const& parent) -> Window
104
auto create_tip(std::string const& name, Window const& parent) -> TestWindow
108
result = Surface{mir_connection_create_render_surface_sync(client_connection, 50, 50)};
95
110
MirRectangle aux_rect{10, 10, 10, 10};
96
auto const window = WindowSpec::for_tip(client_connection, 50, 50, mir_pixel_format_argb_8888, parent,
97
&aux_rect, mir_edge_attachment_any)
98
.set_buffer_usage(mir_buffer_usage_software)
111
result = WindowSpec::for_tip(client_connection, 50, 50, parent, &aux_rect, mir_edge_attachment_any)
99
112
.set_name(name.c_str())
113
.add_surface(result, 50, 50, 0, 0)
100
114
.create_window();
102
client_windows[name] = window;
116
client_windows[name] = result;
108
auto create_dialog(std::string const& name, Window const& parent) -> Window
122
auto create_dialog(std::string const& name, Window const& parent) -> TestWindow
110
auto const window = WindowSpec::for_dialog(client_connection, 50, 50, mir_pixel_format_argb_8888, parent)
111
.set_buffer_usage(mir_buffer_usage_software)
126
result = Surface{mir_connection_create_render_surface_sync(client_connection, 50, 50)};
128
result = WindowSpec::for_dialog(client_connection, 50, 50, parent)
112
129
.set_name(name.c_str())
130
.add_surface(result, 50, 50, 0, 0)
113
131
.create_window();
115
client_windows[name] = window;
133
client_windows[name] = result;
121
139
auto create_workspace() -> std::shared_ptr<miral::Workspace>
468
486
auto const another_app = connect_client("another app");
469
auto const window = WindowSpec::for_normal_window(another_app, 50, 50, mir_pixel_format_argb_8888)
470
.set_buffer_usage(mir_buffer_usage_software)
488
window = Surface{mir_connection_create_render_surface_sync(another_app, 50, 50)};
489
window = WindowSpec::for_normal_window(another_app, 50, 50)
471
490
.set_name(a_window.c_str())
491
.add_surface(window, 50, 50, 0, 0)
472
492
.create_window();
474
494
init_window(window);
527
547
create_window(another_window);
529
549
auto const another_app = connect_client("another app");
530
auto const window = WindowSpec::for_normal_window(another_app, 50, 50, mir_pixel_format_argb_8888)
531
.set_buffer_usage(mir_buffer_usage_software)
551
window = Surface{mir_connection_create_render_surface_sync(another_app, 50, 50)};
552
window = WindowSpec::for_normal_window(another_app, 50, 50)
532
553
.set_name(a_window.c_str())
554
.add_surface(window, 50, 50, 0, 0)
533
555
.create_window();
535
557
init_window(window);
590
612
create_window(another_window);
592
614
auto const another_app = connect_client("another app");
593
auto const window = WindowSpec::for_normal_window(another_app, 50, 50, mir_pixel_format_argb_8888)
594
.set_buffer_usage(mir_buffer_usage_software)
616
window = Surface{mir_connection_create_render_surface_sync(another_app, 50, 50)};
617
window = WindowSpec::for_normal_window(another_app, 50, 50)
595
618
.set_name(a_window.c_str())
619
.add_surface(window, 50, 50, 0, 0)
596
620
.create_window();
598
622
init_window(window);