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

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

Issue 276773004: Revert 269892 "linux_aura: Compile ash into chrome." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: 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
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 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 279
280 gfx::Transform AshWindowTreeHostX11::GetInverseRootTransform() const { 280 gfx::Transform AshWindowTreeHostX11::GetInverseRootTransform() const {
281 return transformer_helper_.GetInverseTransform(); 281 return transformer_helper_.GetInverseTransform();
282 } 282 }
283 283
284 void AshWindowTreeHostX11::UpdateRootWindowSize(const gfx::Size& host_size) { 284 void AshWindowTreeHostX11::UpdateRootWindowSize(const gfx::Size& host_size) {
285 transformer_helper_.UpdateWindowSize(host_size); 285 transformer_helper_.UpdateWindowSize(host_size);
286 } 286 }
287 287
288 void AshWindowTreeHostX11::OnCursorVisibilityChangedNative(bool show) { 288 void AshWindowTreeHostX11::OnCursorVisibilityChangedNative(bool show) {
289 #if defined(OS_CHROMEOS)
290 SetCrOSTapPaused(!show); 289 SetCrOSTapPaused(!show);
291 #endif
292 } 290 }
293 291
294 void AshWindowTreeHostX11::OnWindowInitialized(aura::Window* window) {} 292 void AshWindowTreeHostX11::OnWindowInitialized(aura::Window* window) {}
295 293
296 void AshWindowTreeHostX11::OnHostInitialized(aura::WindowTreeHost* host) { 294 void AshWindowTreeHostX11::OnHostInitialized(aura::WindowTreeHost* host) {
297 // UpdateIsInternalDisplay relies on RootWindowSettings' display_id being set 295 // UpdateIsInternalDisplay relies on RootWindowSettings' display_id being set
298 // available by the time WED::Init is called. (set in 296 // available by the time WED::Init is called. (set in
299 // DisplayManager::CreateRootWindowForDisplay) 297 // DisplayManager::CreateRootWindowForDisplay)
300 // Ready when NotifyHostInitialized is called from WED::Init. 298 // Ready when NotifyHostInitialized is called from WED::Init.
301 if (host != AsWindowTreeHost()) 299 if (host != AsWindowTreeHost())
302 return; 300 return;
303 UpdateIsInternalDisplay(); 301 UpdateIsInternalDisplay();
304 302
305 #if defined(OS_CHROMEOS)
306 // We have to enable Tap-to-click by default because the cursor is set to 303 // We have to enable Tap-to-click by default because the cursor is set to
307 // visible in Shell::InitRootWindowController. 304 // visible in Shell::InitRootWindowController.
308 SetCrOSTapPaused(false); 305 SetCrOSTapPaused(false);
309 #endif
310 } 306 }
311 307
312 void AshWindowTreeHostX11::OnConfigureNotify() { 308 void AshWindowTreeHostX11::OnConfigureNotify() {
313 UpdateIsInternalDisplay(); 309 UpdateIsInternalDisplay();
314 310
315 // Always update barrier and mouse location because |bounds_| might 311 // Always update barrier and mouse location because |bounds_| might
316 // have already been updated in |SetBounds|. 312 // have already been updated in |SetBounds|.
317 if (pointer_barriers_) { 313 if (pointer_barriers_) {
318 UnConfineCursor(); 314 UnConfineCursor();
319 ConfineCursorToRootWindow(); 315 ConfineCursorToRootWindow();
320 } 316 }
321 } 317 }
322 318
323 void AshWindowTreeHostX11::TranslateAndDispatchLocatedEvent( 319 void AshWindowTreeHostX11::TranslateAndDispatchLocatedEvent(
324 ui::LocatedEvent* event) { 320 ui::LocatedEvent* event) {
325 switch (event->type()) { 321 switch (event->type()) {
326 case ui::ET_TOUCH_MOVED: 322 case ui::ET_TOUCH_MOVED:
327 case ui::ET_TOUCH_PRESSED: 323 case ui::ET_TOUCH_PRESSED:
328 case ui::ET_TOUCH_CANCELLED: 324 case ui::ET_TOUCH_CANCELLED:
329 case ui::ET_TOUCH_RELEASED: { 325 case ui::ET_TOUCH_RELEASED: {
330 #if defined(OS_CHROMEOS)
331 ui::TouchEvent* touchev = static_cast<ui::TouchEvent*>(event); 326 ui::TouchEvent* touchev = static_cast<ui::TouchEvent*>(event);
332 if (base::SysInfo::IsRunningOnChromeOS()) { 327 if (base::SysInfo::IsRunningOnChromeOS()) {
333 // X maps the touch-surface to the size of the X root-window. 328 // X maps the touch-surface to the size of the X root-window.
334 // In multi-monitor setup, Coordinate Transformation Matrix 329 // In multi-monitor setup, Coordinate Transformation Matrix
335 // repositions the touch-surface onto part of X root-window 330 // repositions the touch-surface onto part of X root-window
336 // containing aura root-window corresponding to the touchscreen. 331 // containing aura root-window corresponding to the touchscreen.
337 // However, if aura root-window has non-zero origin, 332 // However, if aura root-window has non-zero origin,
338 // we need to relocate the event into aura root-window coordinates. 333 // we need to relocate the event into aura root-window coordinates.
339 touchev->Relocate(bounds().origin()); 334 touchev->Relocate(bounds().origin());
340 #if defined(USE_XI2_MT) 335 #if defined(USE_XI2_MT)
341 if (is_internal_display_) 336 if (is_internal_display_)
342 touch_calibrate_->Calibrate(touchev, bounds()); 337 touch_calibrate_->Calibrate(touchev, bounds());
343 #endif // defined(USE_XI2_MT) 338 #endif // defined(USE_XI2_MT)
344 } 339 }
345 #endif // defined(OS_CHROMEOS)
346 break; 340 break;
347 } 341 }
348 default: { 342 default: {
349 aura::Window* root_window = window(); 343 aura::Window* root_window = window();
350 aura::client::ScreenPositionClient* screen_position_client = 344 aura::client::ScreenPositionClient* screen_position_client =
351 aura::client::GetScreenPositionClient(root_window); 345 aura::client::GetScreenPositionClient(root_window);
352 gfx::Rect local(bounds().size()); 346 gfx::Rect local(bounds().size());
353 local.Inset(transformer_helper_.GetHostInsets()); 347 local.Inset(transformer_helper_.GetHostInsets());
354 if (screen_position_client && !local.Contains(event->location())) { 348 if (screen_position_client && !local.Contains(event->location())) {
355 gfx::Point location(event->location()); 349 gfx::Point location(event->location());
(...skipping 15 matching lines...) Expand all
371 } 365 }
372 366
373 void AshWindowTreeHostX11::UpdateIsInternalDisplay() { 367 void AshWindowTreeHostX11::UpdateIsInternalDisplay() {
374 aura::Window* root_window = window(); 368 aura::Window* root_window = window();
375 gfx::Screen* screen = gfx::Screen::GetScreenFor(root_window); 369 gfx::Screen* screen = gfx::Screen::GetScreenFor(root_window);
376 gfx::Display display = screen->GetDisplayNearestWindow(root_window); 370 gfx::Display display = screen->GetDisplayNearestWindow(root_window);
377 DCHECK(display.is_valid()); 371 DCHECK(display.is_valid());
378 is_internal_display_ = display.IsInternal(); 372 is_internal_display_ = display.IsInternal();
379 } 373 }
380 374
381 #if defined(OS_CHROMEOS)
382 void AshWindowTreeHostX11::SetCrOSTapPaused(bool state) { 375 void AshWindowTreeHostX11::SetCrOSTapPaused(bool state) {
383 if (!ui::IsXInput2Available()) 376 if (!ui::IsXInput2Available())
384 return; 377 return;
385 // Temporarily pause tap-to-click when the cursor is hidden. 378 // Temporarily pause tap-to-click when the cursor is hidden.
386 Atom prop = atom_cache()->GetAtom("Tap Paused"); 379 Atom prop = atom_cache()->GetAtom("Tap Paused");
387 unsigned char value = state; 380 unsigned char value = state;
388 XIDeviceList dev_list = 381 XIDeviceList dev_list =
389 ui::DeviceListCacheX::GetInstance()->GetXI2DeviceList(xdisplay()); 382 ui::DeviceListCacheX::GetInstance()->GetXI2DeviceList(xdisplay());
390 383
391 // Only slave pointer devices could possibly have tap-paused property. 384 // Only slave pointer devices could possibly have tap-paused property.
(...skipping 22 matching lines...) Expand all
414 dev_list[i].deviceid, 407 dev_list[i].deviceid,
415 prop, 408 prop,
416 XA_INTEGER, 409 XA_INTEGER,
417 8, 410 8,
418 PropModeReplace, 411 PropModeReplace,
419 &value, 412 &value,
420 1); 413 1);
421 } 414 }
422 } 415 }
423 } 416 }
424 #endif
425 417
426 AshWindowTreeHost* AshWindowTreeHost::Create(const gfx::Rect& initial_bounds) { 418 AshWindowTreeHost* AshWindowTreeHost::Create(const gfx::Rect& initial_bounds) {
427 return new AshWindowTreeHostX11(initial_bounds); 419 return new AshWindowTreeHostX11(initial_bounds);
428 } 420 }
429 421
430 } // namespace ash 422 } // namespace ash
OLDNEW
« no previous file with comments | « trunk/src/ash/host/ash_window_tree_host_x11.h ('k') | trunk/src/ash/host/ash_window_tree_host_x11_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698