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

Side by Side Diff: ui/views/mus/window_manager_connection.cc

Issue 1419793006: Makes windowmanager draw non-client area (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move wm nonclientframeview to wm Created 5 years, 1 month 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "ui/views/mus/window_manager_connection.h" 5 #include "ui/views/mus/window_manager_connection.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/threading/thread_local.h" 8 #include "base/threading/thread_local.h"
9 #include "components/mus/public/cpp/window_tree_connection.h" 9 #include "components/mus/public/cpp/window_tree_connection.h"
10 #include "components/mus/public/interfaces/window_tree.mojom.h" 10 #include "components/mus/public/interfaces/window_tree.mojom.h"
11 #include "mojo/application/public/cpp/application_connection.h" 11 #include "mojo/application/public/cpp/application_connection.h"
12 #include "mojo/application/public/cpp/application_impl.h" 12 #include "mojo/application/public/cpp/application_impl.h"
13 #include "mojo/converters/geometry/geometry_type_converters.h" 13 #include "mojo/converters/geometry/geometry_type_converters.h"
14 #include "mojo/converters/network/network_type_converters.h" 14 #include "mojo/converters/network/network_type_converters.h"
15 #include "ui/gfx/display.h" 15 #include "ui/gfx/display.h"
16 #include "ui/gfx/geometry/point_conversions.h" 16 #include "ui/gfx/geometry/point_conversions.h"
17 #include "ui/gfx/geometry/rect.h" 17 #include "ui/gfx/geometry/rect.h"
18 #include "ui/views/mus/aura_init.h" 18 #include "ui/views/mus/aura_init.h"
19 #include "ui/views/mus/native_widget_mus.h" 19 #include "ui/views/mus/native_widget_mus.h"
20 #include "ui/views/mus/window_manager_client_area_insets.h"
20 21
21 namespace mojo { 22 namespace mojo {
22 23
23 gfx::Display::Rotation GFXRotationFromMojomRotation( 24 gfx::Display::Rotation GFXRotationFromMojomRotation(
24 mus::mojom::Rotation input) { 25 mus::mojom::Rotation input) {
25 switch (input) { 26 switch (input) {
26 case mus::mojom::ROTATION_VALUE_0: 27 case mus::mojom::ROTATION_VALUE_0:
27 return gfx::Display::ROTATE_0; 28 return gfx::Display::ROTATE_0;
28 case mus::mojom::ROTATION_VALUE_90: 29 case mus::mojom::ROTATION_VALUE_90:
29 return gfx::Display::ROTATE_90; 30 return gfx::Display::ROTATE_90;
(...skipping 20 matching lines...) Expand all
50 gfx::Size(input->work_area->width, input->work_area->height), 51 gfx::Size(input->work_area->width, input->work_area->height),
51 1.0f / input->device_pixel_ratio)); 52 1.0f / input->device_pixel_ratio));
52 result.set_work_area(work_area); 53 result.set_work_area(work_area);
53 result.set_rotation(GFXRotationFromMojomRotation(input->rotation)); 54 result.set_rotation(GFXRotationFromMojomRotation(input->rotation));
54 return result; 55 return result;
55 } 56 }
56 }; 57 };
57 58
58 } // namespace mojo 59 } // namespace mojo
59 60
61 namespace views {
62
60 namespace { 63 namespace {
61 64
62 using WindowManagerConnectionPtr = 65 using WindowManagerConnectionPtr =
63 base::ThreadLocalPointer<views::WindowManagerConnection>; 66 base::ThreadLocalPointer<views::WindowManagerConnection>;
64 67
65 // Env is thread local so that aura may be used on multiple threads. 68 // Env is thread local so that aura may be used on multiple threads.
66 base::LazyInstance<WindowManagerConnectionPtr>::Leaky lazy_tls_ptr = 69 base::LazyInstance<WindowManagerConnectionPtr>::Leaky lazy_tls_ptr =
67 LAZY_INSTANCE_INITIALIZER; 70 LAZY_INSTANCE_INITIALIZER;
68 71
69 std::vector<gfx::Display> GetDisplaysFromWindowManager( 72 std::vector<gfx::Display> GetDisplaysFromWindowManager(
70 mus::mojom::WindowManagerPtr* window_manager) { 73 mus::mojom::WindowManagerPtr* window_manager) {
74 WindowManagerClientAreaInsets client_insets;
71 std::vector<gfx::Display> displays; 75 std::vector<gfx::Display> displays;
72 (*window_manager)->GetDisplays( 76 (*window_manager)
73 [&displays](mojo::Array<mus::mojom::DisplayPtr> mojom_displays) { 77 ->GetConfig([&displays,
74 displays = mojom_displays.To<std::vector<gfx::Display>>(); 78 &client_insets](mus::mojom::WindowManagerConfigPtr results) {
79 displays = results->displays.To<std::vector<gfx::Display>>();
80 client_insets.normal_insets =
81 results->normal_client_area_insets.To<gfx::Insets>();
82 client_insets.maximized_insets =
83 results->maximized_client_area_insets.To<gfx::Insets>();
75 }); 84 });
76 CHECK(window_manager->WaitForIncomingResponse()); 85 CHECK(window_manager->WaitForIncomingResponse());
86 NativeWidgetMus::SetWindowManagerClientAreaInsets(client_insets);
Ben Goodger (Google) 2015/11/04 23:03:21 i'm a little concerned about this API in the futur
77 return displays; 87 return displays;
78 } 88 }
79 89
80 } 90 } // namespace
81
82 namespace views {
83 91
84 // static 92 // static
85 void WindowManagerConnection::Create( 93 void WindowManagerConnection::Create(
86 mus::mojom::WindowManagerPtr window_manager, 94 mus::mojom::WindowManagerPtr window_manager,
87 mojo::ApplicationImpl* app) { 95 mojo::ApplicationImpl* app) {
88 DCHECK(!lazy_tls_ptr.Pointer()->Get()); 96 DCHECK(!lazy_tls_ptr.Pointer()->Get());
89 lazy_tls_ptr.Pointer()->Set( 97 lazy_tls_ptr.Pointer()->Set(
90 new WindowManagerConnection(window_manager.Pass(), app)); 98 new WindowManagerConnection(window_manager.Pass(), app));
91 } 99 }
92 100
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 void WindowManagerConnection::OnConnectionLost( 148 void WindowManagerConnection::OnConnectionLost(
141 mus::WindowTreeConnection* connection) {} 149 mus::WindowTreeConnection* connection) {}
142 150
143 #if defined(OS_WIN) 151 #if defined(OS_WIN)
144 HICON WindowManagerConnection::GetSmallWindowIcon() const { 152 HICON WindowManagerConnection::GetSmallWindowIcon() const {
145 return nullptr; 153 return nullptr;
146 } 154 }
147 #endif 155 #endif
148 156
149 } // namespace views 157 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698