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

Side by Side Diff: ui/aura/remote_window_tree_host_win.cc

Issue 277753002: Makes construction of (ash)RemoteWindowTreeHostWin explicit (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « ui/aura/remote_window_tree_host_win.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/aura/remote_window_tree_host_win.h" 5 #include "ui/aura/remote_window_tree_host_win.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 144
145 void HandleMetroExit() { 145 void HandleMetroExit() {
146 DCHECK(aura::RemoteWindowTreeHostWin::Instance()); 146 DCHECK(aura::RemoteWindowTreeHostWin::Instance());
147 aura::RemoteWindowTreeHostWin::Instance()->HandleMetroExit(); 147 aura::RemoteWindowTreeHostWin::Instance()->HandleMetroExit();
148 } 148 }
149 149
150 RemoteWindowTreeHostWin* g_instance = NULL; 150 RemoteWindowTreeHostWin* g_instance = NULL;
151 151
152 // static 152 // static
153 RemoteWindowTreeHostWin* RemoteWindowTreeHostWin::Instance() { 153 RemoteWindowTreeHostWin* RemoteWindowTreeHostWin::Instance() {
154 if (!g_instance)
155 g_instance = new RemoteWindowTreeHostWin(gfx::Rect());
156 return g_instance; 154 return g_instance;
157 } 155 }
158 156
159 // static 157 RemoteWindowTreeHostWin::RemoteWindowTreeHostWin()
160 void RemoteWindowTreeHostWin::SetInstance(RemoteWindowTreeHostWin* instance) {
161 CHECK(!g_instance);
162 g_instance = instance;
163 }
164
165 RemoteWindowTreeHostWin::RemoteWindowTreeHostWin(const gfx::Rect& bounds)
166 : remote_window_(NULL), 158 : remote_window_(NULL),
167 host_(NULL), 159 host_(NULL),
168 ignore_mouse_moves_until_set_cursor_ack_(false), 160 ignore_mouse_moves_until_set_cursor_ack_(false),
169 event_flags_(0), 161 event_flags_(0),
170 window_size_(aura::WindowTreeHost::GetNativeScreenSize()) { 162 window_size_(aura::WindowTreeHost::GetNativeScreenSize()) {
163 CHECK(!g_instance);
164 g_instance = this;
171 prop_.reset(new ui::ViewProp(NULL, kWindowTreeHostWinKey, this)); 165 prop_.reset(new ui::ViewProp(NULL, kWindowTreeHostWinKey, this));
172 CreateCompositor(GetAcceleratedWidget()); 166 CreateCompositor(GetAcceleratedWidget());
173 } 167 }
174 168
175 RemoteWindowTreeHostWin::~RemoteWindowTreeHostWin() { 169 RemoteWindowTreeHostWin::~RemoteWindowTreeHostWin() {
176 DestroyCompositor(); 170 DestroyCompositor();
177 DestroyDispatcher(); 171 DestroyDispatcher();
172 DCHECK_EQ(g_instance, this);
178 g_instance = NULL; 173 g_instance = NULL;
179 } 174 }
180 175
181 // static 176 // static
182 bool RemoteWindowTreeHostWin::IsValid() { 177 bool RemoteWindowTreeHostWin::IsValid() {
183 return Instance()->remote_window_ != NULL; 178 return Instance()->remote_window_ != NULL;
184 } 179 }
185 180
186 void RemoteWindowTreeHostWin::InitializeRemoteWindowAndScaleFactor( 181 void RemoteWindowTreeHostWin::SetRemoteWindowHandle(HWND remote_window) {
187 HWND remote_window,
188 float device_scale) {
189 remote_window_ = remote_window; 182 remote_window_ = remote_window;
190 gfx::InitDeviceScaleFactor(device_scale);
191 // Do not create compositor here, but in Connected() below.
192 // See http://crbug.com/330179 and http://crbug.com/334380.
193 } 183 }
194 184
195 void RemoteWindowTreeHostWin::Connected(IPC::Sender* host) { 185 void RemoteWindowTreeHostWin::Connected(IPC::Sender* host) {
196 CHECK(host_ == NULL); 186 CHECK(host_ == NULL);
197 DCHECK(remote_window_); 187 DCHECK(remote_window_);
198 host_ = host; 188 host_ = host;
199 // Recreate the compositor for the target surface represented by the 189 // Recreate the compositor for the target surface represented by the
200 // remote_window HWND. 190 // remote_window HWND.
201 CreateCompositor(remote_window_); 191 CreateCompositor(remote_window_);
202 InitCompositor(); 192 InitCompositor();
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 } 732 }
743 733
744 void RemoteWindowTreeHostWin::SetEventFlags(uint32 flags) { 734 void RemoteWindowTreeHostWin::SetEventFlags(uint32 flags) {
745 if (flags == event_flags_) 735 if (flags == event_flags_)
746 return; 736 return;
747 event_flags_ = flags; 737 event_flags_ = flags;
748 SetVirtualKeyStates(event_flags_); 738 SetVirtualKeyStates(event_flags_);
749 } 739 }
750 740
751 } // namespace aura 741 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/remote_window_tree_host_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698