| Index: ui/views/mus/screen_mus.cc
|
| diff --git a/ui/views/mus/screen_mus.cc b/ui/views/mus/screen_mus.cc
|
| index 2a0234905120ea293ec0375ee1066afaa94c9868..88311b6c62d45fddc277aa58956e056340e7cebc 100644
|
| --- a/ui/views/mus/screen_mus.cc
|
| +++ b/ui/views/mus/screen_mus.cc
|
| @@ -4,11 +4,14 @@
|
|
|
| #include "ui/views/mus/screen_mus.h"
|
|
|
| +// #include "components/mus/public/interfaces/window_manager_constants.mojom.h"
|
| #include "mojo/converters/geometry/geometry_type_converters.h"
|
| #include "mojo/shell/public/cpp/application_connection.h"
|
| #include "mojo/shell/public/cpp/application_impl.h"
|
| #include "ui/gfx/display_finder.h"
|
| #include "ui/gfx/display_observer.h"
|
| +#include "ui/views/mus/screen_mus_delegate.h"
|
| +#include "ui/views/mus/window_manager_frame_values.h"
|
|
|
| namespace mojo {
|
|
|
| @@ -47,12 +50,28 @@ struct TypeConverter<gfx::Display, mus::mojom::DisplayPtr> {
|
| }
|
| };
|
|
|
| +template <>
|
| +struct TypeConverter<views::WindowManagerFrameValues,
|
| + mus::mojom::FrameDecorationValuesPtr> {
|
| + static views::WindowManagerFrameValues Convert(
|
| + const mus::mojom::FrameDecorationValuesPtr& input) {
|
| + views::WindowManagerFrameValues result;
|
| + result.normal_insets = input->normal_client_area_insets.To<gfx::Insets>();
|
| + result.maximized_insets =
|
| + input->maximized_client_area_insets.To<gfx::Insets>();
|
| + result.max_title_bar_button_width = input->max_title_bar_button_width;
|
| + return result;
|
| + }
|
| +};
|
| +
|
| } // namespace mojo
|
|
|
| namespace views {
|
|
|
| -ScreenMus::ScreenMus()
|
| - : primary_display_index_(0), display_manager_observer_binding_(this) {}
|
| +ScreenMus::ScreenMus(ScreenMusDelegate* delegate)
|
| + : delegate_(delegate),
|
| + primary_display_index_(0),
|
| + display_manager_observer_binding_(this) {}
|
|
|
| ScreenMus::~ScreenMus() {}
|
|
|
| @@ -176,8 +195,13 @@ void ScreenMus::OnDisplays(mojo::Array<mus::mojom::DisplayPtr> displays) {
|
| DCHECK(displays_.empty());
|
| displays_ = displays.To<std::vector<gfx::Display>>();
|
| for (size_t i = 0; i < displays.size(); ++i) {
|
| - if (displays[i]->is_primary)
|
| + if (displays[i]->is_primary) {
|
| primary_display_index_ = static_cast<int>(i);
|
| + // TODO(sky): Make WindowManagerFrameValues per display.
|
| + WindowManagerFrameValues frame_values =
|
| + displays[i]->frame_decoration_values.To<WindowManagerFrameValues>();
|
| + WindowManagerFrameValues::SetInstance(frame_values);
|
| + }
|
| }
|
| }
|
|
|
| @@ -186,6 +210,13 @@ void ScreenMus::OnDisplaysChanged(
|
| for (size_t i = 0; i < transport_displays.size(); ++i) {
|
| const bool is_primary = transport_displays[i]->is_primary;
|
| ProcessDisplayChanged(transport_displays[i].To<gfx::Display>(), is_primary);
|
| + if (is_primary) {
|
| + WindowManagerFrameValues frame_values =
|
| + transport_displays[i]
|
| + ->frame_decoration_values.To<WindowManagerFrameValues>();
|
| + WindowManagerFrameValues::SetInstance(frame_values);
|
| + delegate_->OnWindowManagerFrameValuesChanged();
|
| + }
|
| }
|
| }
|
|
|
|
|