Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Side by Side Diff: components/mus/ws/window_manager_state.cc

Issue 1775583002: Moves FrameDecorations from Display to WindowManagerState (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: override Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/mus/ws/window_manager_state.h ('k') | components/mus/ws/window_tree.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/mus/ws/window_manager_state.h" 5 #include "components/mus/ws/window_manager_state.h"
6 6
7 #include "components/mus/ws/connection_manager.h" 7 #include "components/mus/ws/connection_manager.h"
8 #include "components/mus/ws/display_manager.h" 8 #include "components/mus/ws/display_manager.h"
9 #include "components/mus/ws/server_window.h" 9 #include "components/mus/ws/server_window.h"
10 #include "components/mus/ws/user_display_manager.h"
10 #include "mojo/shell/public/interfaces/connector.mojom.h" 11 #include "mojo/shell/public/interfaces/connector.mojom.h"
11 12
12 namespace mus { 13 namespace mus {
13 namespace ws { 14 namespace ws {
14 15
15 WindowManagerState::WindowManagerState(Display* display) 16 WindowManagerState::WindowManagerState(Display* display)
16 : WindowManagerState(display, false, mojo::shell::mojom::kRootUserID) {} 17 : WindowManagerState(display, false, mojo::shell::mojom::kRootUserID) {}
17 18
18 WindowManagerState::WindowManagerState(Display* display, const UserId& user_id) 19 WindowManagerState::WindowManagerState(Display* display, const UserId& user_id)
19 : WindowManagerState(display, true, user_id) {} 20 : WindowManagerState(display, true, user_id) {}
20 21
21 WindowManagerState::~WindowManagerState() {} 22 WindowManagerState::~WindowManagerState() {}
22 23
23 WindowManagerState::WindowManagerState(Display* display, 24 WindowManagerState::WindowManagerState(Display* display,
24 bool is_user_id_valid, 25 bool is_user_id_valid,
25 const UserId& user_id) 26 const UserId& user_id)
26 : display_(display), 27 : display_(display),
27 is_user_id_valid_(is_user_id_valid), 28 is_user_id_valid_(is_user_id_valid),
28 user_id_(user_id) { 29 user_id_(user_id) {
30 frame_decoration_values_ = mojom::FrameDecorationValues::New();
31 frame_decoration_values_->normal_client_area_insets = mojo::Insets::New();
32 frame_decoration_values_->maximized_client_area_insets = mojo::Insets::New();
33 frame_decoration_values_->max_title_bar_button_width = 0u;
34
29 ConnectionManager* connection_manager = display_->connection_manager(); 35 ConnectionManager* connection_manager = display_->connection_manager();
30 root_.reset(connection_manager->CreateServerWindow( 36 root_.reset(connection_manager->CreateServerWindow(
31 connection_manager->display_manager()->GetAndAdvanceNextRootId(), 37 connection_manager->display_manager()->GetAndAdvanceNextRootId(),
32 ServerWindow::Properties())); 38 ServerWindow::Properties()));
33 // Our root is always a child of the Display's root. Do this 39 // Our root is always a child of the Display's root. Do this
34 // before the WindowTree has been created so that the client doesn't get 40 // before the WindowTree has been created so that the client doesn't get
35 // notified of the add, bounds change and visibility change. 41 // notified of the add, bounds change and visibility change.
36 root_->SetBounds(gfx::Rect(display->root_window()->bounds().size())); 42 root_->SetBounds(gfx::Rect(display->root_window()->bounds().size()));
37 root_->SetVisible(true); 43 root_->SetVisible(true);
38 display->root_window()->Add(root_.get()); 44 display->root_window()->Add(root_.get());
39 } 45 }
40 46
47 void WindowManagerState::SetFrameDecorationValues(
48 mojom::FrameDecorationValuesPtr values) {
49 got_frame_decoration_values_ = true;
50 frame_decoration_values_ = values.Clone();
51 display_->display_manager()
52 ->GetUserDisplayManager(user_id_)
53 ->OnFrameDecorationValuesChanged(this);
54 }
55
56 mojom::DisplayPtr WindowManagerState::ToMojomDisplay() const {
57 mojom::DisplayPtr display_ptr = display_->ToMojomDisplay();
58 // TODO(sky): set work area.
59 display_ptr->work_area = display_ptr->bounds.Clone();
60 display_ptr->frame_decoration_values = frame_decoration_values_.Clone();
61 return display_ptr;
62 }
63
41 } // namespace ws 64 } // namespace ws
42 } // namespace mus 65 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/ws/window_manager_state.h ('k') | components/mus/ws/window_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698