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

Side by Side Diff: ash/host/ash_window_tree_host_x11.cc

Issue 292443002: linux_aura: Compile ash into chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src
Patch Set: Rebase to ToT 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
« no previous file with comments | « ash/host/ash_window_tree_host_x11.h ('k') | ash/host/ash_window_tree_host_x11_unittest.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ash/host/ash_window_tree_host_x11.h" 5 #include "ash/host/ash_window_tree_host_x11.h"
6 6
7 #include <X11/extensions/Xfixes.h> 7 #include <X11/extensions/Xfixes.h>
8 #include <X11/extensions/XInput2.h> 8 #include <X11/extensions/XInput2.h>
9 #include <X11/Xatom.h> 9 #include <X11/Xatom.h>
10 #include <X11/Xlib.h> 10 #include <X11/Xlib.h>
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 147
148 gfx::Transform AshWindowTreeHostX11::GetInverseRootTransform() const { 148 gfx::Transform AshWindowTreeHostX11::GetInverseRootTransform() const {
149 return transformer_helper_.GetInverseTransform(); 149 return transformer_helper_.GetInverseTransform();
150 } 150 }
151 151
152 void AshWindowTreeHostX11::UpdateRootWindowSize(const gfx::Size& host_size) { 152 void AshWindowTreeHostX11::UpdateRootWindowSize(const gfx::Size& host_size) {
153 transformer_helper_.UpdateWindowSize(host_size); 153 transformer_helper_.UpdateWindowSize(host_size);
154 } 154 }
155 155
156 void AshWindowTreeHostX11::OnCursorVisibilityChangedNative(bool show) { 156 void AshWindowTreeHostX11::OnCursorVisibilityChangedNative(bool show) {
157 #if defined(OS_CHROMEOS)
157 SetCrOSTapPaused(!show); 158 SetCrOSTapPaused(!show);
159 #endif
158 } 160 }
159 161
160 void AshWindowTreeHostX11::OnWindowInitialized(aura::Window* window) {} 162 void AshWindowTreeHostX11::OnWindowInitialized(aura::Window* window) {}
161 163
162 void AshWindowTreeHostX11::OnHostInitialized(aura::WindowTreeHost* host) { 164 void AshWindowTreeHostX11::OnHostInitialized(aura::WindowTreeHost* host) {
163 if (host != AsWindowTreeHost()) 165 if (host != AsWindowTreeHost())
164 return; 166 return;
165 167
168 #if defined(OS_CHROMEOS)
166 // We have to enable Tap-to-click by default because the cursor is set to 169 // We have to enable Tap-to-click by default because the cursor is set to
167 // visible in Shell::InitRootWindowController. 170 // visible in Shell::InitRootWindowController.
168 SetCrOSTapPaused(false); 171 SetCrOSTapPaused(false);
172 #endif
169 } 173 }
170 174
171 void AshWindowTreeHostX11::OnConfigureNotify() { 175 void AshWindowTreeHostX11::OnConfigureNotify() {
172 // Always update barrier and mouse location because |bounds_| might 176 // Always update barrier and mouse location because |bounds_| might
173 // have already been updated in |SetBounds|. 177 // have already been updated in |SetBounds|.
174 if (pointer_barriers_) { 178 if (pointer_barriers_) {
175 UnConfineCursor(); 179 UnConfineCursor();
176 ConfineCursorToRootWindow(); 180 ConfineCursorToRootWindow();
177 } 181 }
178 } 182 }
179 183
180 bool AshWindowTreeHostX11::CanDispatchEvent(const ui::PlatformEvent& event) { 184 bool AshWindowTreeHostX11::CanDispatchEvent(const ui::PlatformEvent& event) {
181 if(!WindowTreeHostX11::CanDispatchEvent(event)) 185 if(!WindowTreeHostX11::CanDispatchEvent(event))
182 return false; 186 return false;
183 XEvent* xev = event; 187 XEvent* xev = event;
184 XIDeviceEvent* xiev = static_cast<XIDeviceEvent*>(xev->xcookie.data);
185 ui::EventType type = ui::EventTypeFromNative(xev); 188 ui::EventType type = ui::EventTypeFromNative(xev);
186 // For touch event, check if the root window is residing on the according 189 // For touch event, check if the root window is residing on the according
187 // touch display. 190 // touch display.
188 switch (type) { 191 switch (type) {
189 case ui::ET_TOUCH_MOVED: 192 case ui::ET_TOUCH_MOVED:
190 case ui::ET_TOUCH_PRESSED: 193 case ui::ET_TOUCH_PRESSED:
191 case ui::ET_TOUCH_CANCELLED: 194 case ui::ET_TOUCH_CANCELLED:
192 case ui::ET_TOUCH_RELEASED: { 195 case ui::ET_TOUCH_RELEASED: {
193 #if defined(OS_CHROMEOS) 196 #if defined(OS_CHROMEOS)
197 XIDeviceEvent* xiev = static_cast<XIDeviceEvent*>(xev->xcookie.data);
194 int64 touch_display_id = 198 int64 touch_display_id =
195 ui::DeviceDataManager::GetInstance()->GetDisplayForTouchDevice( 199 ui::DeviceDataManager::GetInstance()->GetDisplayForTouchDevice(
196 xiev->deviceid); 200 xiev->deviceid);
197 // If we don't have record of display id for this touch device, check 201 // If we don't have record of display id for this touch device, check
198 // that if the event is within the bound of the root window. Note 202 // that if the event is within the bound of the root window. Note
199 // that in multi-monitor case, the event position is in framebuffer 203 // that in multi-monitor case, the event position is in framebuffer
200 // space so the bounds check will not work so well. 204 // space so the bounds check will not work so well.
201 if (touch_display_id == gfx::Display::kInvalidDisplayID) { 205 if (touch_display_id == gfx::Display::kInvalidDisplayID) {
202 if (base::SysInfo::IsRunningOnChromeOS() && 206 if (base::SysInfo::IsRunningOnChromeOS() &&
203 !bounds().Contains(ui::EventLocationFromNative(xev))) 207 !bounds().Contains(ui::EventLocationFromNative(xev)))
(...skipping 28 matching lines...) Expand all
232 &location); 236 &location);
233 screen_position_client->ConvertPointFromScreen(root_window, &location); 237 screen_position_client->ConvertPointFromScreen(root_window, &location);
234 ConvertPointToHost(&location); 238 ConvertPointToHost(&location);
235 event->set_location(location); 239 event->set_location(location);
236 event->set_root_location(location); 240 event->set_root_location(location);
237 } 241 }
238 } 242 }
239 SendEventToProcessor(event); 243 SendEventToProcessor(event);
240 } 244 }
241 245
246 #if defined(OS_CHROMEOS)
242 void AshWindowTreeHostX11::SetCrOSTapPaused(bool state) { 247 void AshWindowTreeHostX11::SetCrOSTapPaused(bool state) {
243 if (!ui::IsXInput2Available()) 248 if (!ui::IsXInput2Available())
244 return; 249 return;
245 // Temporarily pause tap-to-click when the cursor is hidden. 250 // Temporarily pause tap-to-click when the cursor is hidden.
246 Atom prop = atom_cache()->GetAtom("Tap Paused"); 251 Atom prop = atom_cache()->GetAtom("Tap Paused");
247 unsigned char value = state; 252 unsigned char value = state;
248 XIDeviceList dev_list = 253 XIDeviceList dev_list =
249 ui::DeviceListCacheX::GetInstance()->GetXI2DeviceList(xdisplay()); 254 ui::DeviceListCacheX::GetInstance()->GetXI2DeviceList(xdisplay());
250 255
251 // Only slave pointer devices could possibly have tap-paused property. 256 // Only slave pointer devices could possibly have tap-paused property.
(...skipping 22 matching lines...) Expand all
274 dev_list[i].deviceid, 279 dev_list[i].deviceid,
275 prop, 280 prop,
276 XA_INTEGER, 281 XA_INTEGER,
277 8, 282 8,
278 PropModeReplace, 283 PropModeReplace,
279 &value, 284 &value,
280 1); 285 1);
281 } 286 }
282 } 287 }
283 } 288 }
289 #endif
284 290
285 AshWindowTreeHost* AshWindowTreeHost::Create( 291 AshWindowTreeHost* AshWindowTreeHost::Create(
286 const AshWindowTreeHostInitParams& init_params) { 292 const AshWindowTreeHostInitParams& init_params) {
287 return new AshWindowTreeHostX11(init_params.initial_bounds); 293 return new AshWindowTreeHostX11(init_params.initial_bounds);
288 } 294 }
289 295
290 } // namespace ash 296 } // namespace ash
OLDNEW
« no previous file with comments | « ash/host/ash_window_tree_host_x11.h ('k') | ash/host/ash_window_tree_host_x11_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698