blob: a88e3c5afbf3d44207ced6c721c472bdd8d9cad2 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/aura/mus/window_tree_host_mus_init_params.h"
#include "ui/aura/mus/window_port_mus.h"
#include "ui/aura/mus/window_tree_client.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
namespace aura {
DisplayInitParams::DisplayInitParams() = default;
DisplayInitParams::~DisplayInitParams() = default;
WindowTreeHostMusInitParams::WindowTreeHostMusInitParams() = default;
WindowTreeHostMusInitParams::WindowTreeHostMusInitParams(
WindowTreeHostMusInitParams&& other) = default;
WindowTreeHostMusInitParams::~WindowTreeHostMusInitParams() = default;
WindowTreeHostMusInitParams CreateInitParamsForTopLevel(
WindowTreeClient* window_tree_client,
std::map<std::string, std::vector<uint8_t>> properties) {
WindowTreeHostMusInitParams params;
params.window_tree_client = window_tree_client;
params.display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id();
// Pass |properties| to CreateWindowPortForTopLevel() so that |properties|
// are passed to the server *and* pass |properties| to the WindowTreeHostMus
// constructor (above) which applies the properties to the Window. Some of the
// properties may be server specific and not applied to the Window.
params.window_port =
static_cast<WindowTreeHostMusDelegate*>(window_tree_client)
->CreateWindowPortForTopLevel(&properties);
params.properties = std::move(properties);
return params;
}
} // namespace aura