OLD | NEW |
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/root_window.h" | 5 #include "ui/aura/root_window.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 if (target) { | 206 if (target) { |
207 TouchEvent translated_event(*event, this, target); | 207 TouchEvent translated_event(*event, this, target); |
208 ui::TouchStatus status = ProcessTouchEvent(target, &translated_event); | 208 ui::TouchStatus status = ProcessTouchEvent(target, &translated_event); |
209 if (status == ui::TOUCH_STATUS_START) | 209 if (status == ui::TOUCH_STATUS_START) |
210 touch_event_handler_ = target; | 210 touch_event_handler_ = target; |
211 else if (status == ui::TOUCH_STATUS_END || | 211 else if (status == ui::TOUCH_STATUS_END || |
212 status == ui::TOUCH_STATUS_CANCEL) | 212 status == ui::TOUCH_STATUS_CANCEL) |
213 touch_event_handler_ = NULL; | 213 touch_event_handler_ = NULL; |
214 handled = status != ui::TOUCH_STATUS_UNKNOWN; | 214 handled = status != ui::TOUCH_STATUS_UNKNOWN; |
215 } | 215 } |
| 216 |
| 217 if (!handled) { |
| 218 // TODO(sad): Send the touch to the gesture recognizer. |
| 219 } |
| 220 |
216 return handled; | 221 return handled; |
217 } | 222 } |
218 | 223 |
| 224 bool RootWindow::DispatchGestureEvent(GestureEvent* event) { |
| 225 // TODO(sad): |
| 226 return false; |
| 227 } |
| 228 |
219 void RootWindow::OnHostResized(const gfx::Size& size) { | 229 void RootWindow::OnHostResized(const gfx::Size& size) { |
220 // The compositor should have the same size as the native root window host. | 230 // The compositor should have the same size as the native root window host. |
221 compositor_->WidgetSizeChanged(size); | 231 compositor_->WidgetSizeChanged(size); |
222 | 232 |
223 // The layer, and all the observers should be notified of the | 233 // The layer, and all the observers should be notified of the |
224 // transformed size of the root window. | 234 // transformed size of the root window. |
225 gfx::Rect bounds(size); | 235 gfx::Rect bounds(size); |
226 layer()->transform().TransformRect(&bounds); | 236 layer()->transform().TransformRect(&bounds); |
227 SetBounds(gfx::Rect(bounds.size())); | 237 SetBounds(gfx::Rect(bounds.size())); |
228 FOR_EACH_OBSERVER(RootWindowObserver, observers_, | 238 FOR_EACH_OBSERVER(RootWindowObserver, observers_, |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 for (EventFilters::const_reverse_iterator it = filters.rbegin(); | 442 for (EventFilters::const_reverse_iterator it = filters.rbegin(); |
433 it != filters.rend(); ++it) { | 443 it != filters.rend(); ++it) { |
434 ui::TouchStatus status = (*it)->PreHandleTouchEvent(target, event); | 444 ui::TouchStatus status = (*it)->PreHandleTouchEvent(target, event); |
435 if (status != ui::TOUCH_STATUS_UNKNOWN) | 445 if (status != ui::TOUCH_STATUS_UNKNOWN) |
436 return status; | 446 return status; |
437 } | 447 } |
438 | 448 |
439 return target->delegate()->OnTouchEvent(event); | 449 return target->delegate()->OnTouchEvent(event); |
440 } | 450 } |
441 | 451 |
| 452 ui::GestureStatus RootWindow::ProcessGestureEvent(Window* target, |
| 453 GestureEvent* event) { |
| 454 if (!target->IsVisible()) |
| 455 return ui::GESTURE_STATUS_UNKNOWN; |
| 456 |
| 457 EventFilters filters; |
| 458 GetEventFiltersToNotify(target, &filters); |
| 459 for (EventFilters::const_reverse_iterator it = filters.rbegin(); |
| 460 it != filters.rend(); ++it) { |
| 461 ui::GestureStatus status = (*it)->PreHandleGestureEvent(target, event); |
| 462 if (status != ui::GESTURE_STATUS_UNKNOWN) |
| 463 return status; |
| 464 } |
| 465 |
| 466 return target->delegate()->OnGestureEvent(event); |
| 467 } |
| 468 |
442 void RootWindow::ScheduleDraw() { | 469 void RootWindow::ScheduleDraw() { |
443 if (!schedule_paint_factory_.HasWeakPtrs()) { | 470 if (!schedule_paint_factory_.HasWeakPtrs()) { |
444 MessageLoop::current()->PostTask( | 471 MessageLoop::current()->PostTask( |
445 FROM_HERE, | 472 FROM_HERE, |
446 base::Bind(&RootWindow::Draw, schedule_paint_factory_.GetWeakPtr())); | 473 base::Bind(&RootWindow::Draw, schedule_paint_factory_.GetWeakPtr())); |
447 } | 474 } |
448 } | 475 } |
449 | 476 |
450 bool RootWindow::CanFocus() const { | 477 bool RootWindow::CanFocus() const { |
451 return IsVisible(); | 478 return IsVisible(); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 base::StringToInt(parts[1], &parsed_height) && parsed_height > 0) { | 579 base::StringToInt(parts[1], &parsed_height) && parsed_height > 0) { |
553 bounds.set_size(gfx::Size(parsed_width, parsed_height)); | 580 bounds.set_size(gfx::Size(parsed_width, parsed_height)); |
554 } else if (use_fullscreen_host_window_) { | 581 } else if (use_fullscreen_host_window_) { |
555 bounds = gfx::Rect(RootWindowHost::GetNativeScreenSize()); | 582 bounds = gfx::Rect(RootWindowHost::GetNativeScreenSize()); |
556 } | 583 } |
557 | 584 |
558 return bounds; | 585 return bounds; |
559 } | 586 } |
560 | 587 |
561 } // namespace aura | 588 } // namespace aura |
OLD | NEW |