diff options
author | jonross <jonross@chromium.org> | 2016-03-22 10:40:04 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-22 17:42:27 +0000 |
commit | a3e8ee8bca171e70a591d8ef4927cae08e9484cc (patch) | |
tree | e47d398719e5c8b0d07c84d5472f6cb1b50d2d19 /components/mus/ws/test_utils.cc | |
parent | 4dc1dc6668a87620574dd43392046c3691914da2 (diff) | |
download | chromium_src-a3e8ee8bca171e70a591d8ef4927cae08e9484cc.zip chromium_src-a3e8ee8bca171e70a591d8ef4927cae08e9484cc.tar.gz chromium_src-a3e8ee8bca171e70a591d8ef4927cae08e9484cc.tar.bz2 |
Mus Window Server Post Target Accelerators
Implement post-target accelerators in the mus window server.
EventDispatcher's EventMatcher class has been refactored out into Accelerator. This provides a WeakPtr, as accelerators can be deleted by the client while the window server is awaiting an event ack. We don't want to notify a now deleted accelerator.
Updated EventDispatcher to send post-targer accelerators to its delegate.
Updated WindowManagerState to track accelerators awaiting event acks. On unhandled event acks the accelerator is sent.
TEST=EventDispatcherTest, WindowManagerStateTest, manual testing of a post-target accelerator
BUG=560478
Review URL: https://codereview.chromium.org/1806413003
Cr-Commit-Position: refs/heads/master@{#382600}
Diffstat (limited to 'components/mus/ws/test_utils.cc')
-rw-r--r-- | components/mus/ws/test_utils.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/components/mus/ws/test_utils.cc b/components/mus/ws/test_utils.cc index 87b517c..4201f94 100644 --- a/components/mus/ws/test_utils.cc +++ b/components/mus/ws/test_utils.cc @@ -7,8 +7,10 @@ #include "cc/output/copy_output_request.h" #include "components/mus/surfaces/surfaces_state.h" #include "components/mus/ws/display_binding.h" +#include "components/mus/ws/window_manager_access_policy.h" #include "components/mus/ws/window_manager_factory_service.h" #include "mojo/converters/geometry/geometry_type_converters.h" +#include "mojo/shell/public/interfaces/connector.mojom.h" namespace mus { namespace ws { @@ -112,6 +114,28 @@ int EventDispatcherTestApi::NumberPointerTargetsForWindow( return count; } +// TestDisplayBinding --------------------------------------------------------- + +WindowTree* TestDisplayBinding::CreateWindowTree(ServerWindow* root) { + return window_server_->EmbedAtWindow( + root, mojo::shell::mojom::kRootUserID, mus::mojom::WindowTreeClientPtr(), + make_scoped_ptr(new WindowManagerAccessPolicy)); +} + +// TestWindowManager ---------------------------------------------------------- + +void TestWindowManager::WmCreateTopLevelWindow( + uint32_t change_id, + mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) { + got_create_top_level_window_ = true; + change_id_ = change_id; +} + +void TestWindowManager::OnAccelerator(uint32_t id, mojom::EventPtr event) { + on_accelerator_called_ = true; + on_accelerator_id_ = id; +} + // TestWindowTreeClient ------------------------------------------------------- TestWindowTreeClient::TestWindowTreeClient() |