19
19
#include "test_server.h"
21
#include <miral/toolkit/window.h>
22
#include <miral/toolkit/window_spec.h>
21
#include <mir/client/window.h>
22
#include <mir/client/window_spec.h>
23
23
#include <mir_toolkit/mir_buffer_stream.h>
24
24
#include <mir_toolkit/version.h>
74
74
auto create_surface(Connection const& connection, char const* name, FocusChangeSync& sync) -> Window
76
auto const spec = WindowSpec::for_normal_surface(connection, 50, 50, mir_pixel_format_argb_8888)
76
auto const spec = WindowSpec::for_normal_window(connection, 50, 50, mir_pixel_format_argb_8888)
77
77
.set_buffer_usage(mir_buffer_usage_software)
78
78
.set_event_handler(&FocusChangeSync::raise_signal_on_focus_change, &sync)
81
Window const surface{spec.create_surface()};
81
Window const surface{spec.create_window()};
83
#if MIR_CLIENT_VERSION <= MIR_VERSION_NUMBER(3, 4, 0)
84
sync.exec([&]{ mir_buffer_stream_swap_buffers_sync(mir_surface_get_buffer_stream(surface)); });
86
83
sync.exec([&]{ mir_buffer_stream_swap_buffers_sync(mir_window_get_buffer_stream(surface)); });
88
84
EXPECT_TRUE(sync.signal_raised());
99
95
.set_event_handler(&FocusChangeSync::raise_signal_on_focus_change, &sync)
102
Window const surface{spec.create_surface()};
98
Window const surface{spec.create_window()};
104
100
// Expect this to timeout: A tip should not receive focus
105
#if MIR_CLIENT_VERSION <= MIR_VERSION_NUMBER(3, 4, 0)
106
sync.exec([&]{ mir_buffer_stream_swap_buffers_sync(mir_surface_get_buffer_stream(surface)); });
108
101
sync.exec([&]{ mir_buffer_stream_swap_buffers_sync(mir_window_get_buffer_stream(surface)); });
110
102
EXPECT_FALSE(sync.signal_raised());
120
112
.set_event_handler(&FocusChangeSync::raise_signal_on_focus_change, &sync)
123
Window const surface{spec.create_surface()};
115
Window const surface{spec.create_window()};
125
#if MIR_CLIENT_VERSION <= MIR_VERSION_NUMBER(3, 4, 0)
126
sync.exec([&]{ mir_buffer_stream_swap_buffers_sync(mir_surface_get_buffer_stream(surface)); });
128
117
sync.exec([&]{ mir_buffer_stream_swap_buffers_sync(mir_window_get_buffer_stream(surface)); });
130
118
EXPECT_TRUE(sync.signal_raised());
350
338
EXPECT_TRUE(sync2.signal_raised());
351
339
assert_active_window_is(dialog_name);
342
TEST_F(ActiveWindow, input_methods_are_not_focussed)
344
char const* const test_name = __PRETTY_FUNCTION__;
345
auto const connection = connect_client(test_name);
347
auto const parent = create_surface(connection, test_name, sync1);
348
auto const input_method = WindowSpec::for_input_method(connection, 50, 50, parent).create_window();
350
assert_active_window_is(test_name);
352
invoke_tools([&](WindowManagerTools& tools)
354
auto const& info = tools.info_for(tools.active_window());
355
tools.select_active_window(info.children().at(0));
358
assert_active_window_is(test_name);
361
TEST_F(ActiveWindow, satellites_are_not_focussed)
363
char const* const test_name = __PRETTY_FUNCTION__;
364
auto const connection = connect_client(test_name);
366
auto const parent = create_surface(connection, test_name, sync1);
367
auto const satellite = WindowSpec::for_satellite(connection, 50, 50, parent).create_window();
369
assert_active_window_is(test_name);
371
invoke_tools([&](WindowManagerTools& tools)
373
auto const& info = tools.info_for(tools.active_window());
374
tools.select_active_window(info.children().at(0));
377
assert_active_window_is(test_name);