| 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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 // and then it releases the capture. In that case OnMouseExited won't | 373 // and then it releases the capture. In that case OnMouseExited won't |
| 374 // be called. So it is natural not to emit OnMouseExited even though | 374 // be called. So it is natural not to emit OnMouseExited even though |
| 375 // |window| is the capture window. | 375 // |window| is the capture window. |
| 376 gfx::Point last_mouse_location = GetLastMouseLocationInRoot(); | 376 gfx::Point last_mouse_location = GetLastMouseLocationInRoot(); |
| 377 if (window->Contains(mouse_moved_handler_) && | 377 if (window->Contains(mouse_moved_handler_) && |
| 378 window->ContainsPointInRoot(last_mouse_location)) | 378 window->ContainsPointInRoot(last_mouse_location)) |
| 379 DispatchMouseExitAtPoint(last_mouse_location); | 379 DispatchMouseExitAtPoint(last_mouse_location); |
| 380 } | 380 } |
| 381 | 381 |
| 382 void RootWindow::DispatchMouseExitAtPoint(const gfx::Point& point) { | 382 void RootWindow::DispatchMouseExitAtPoint(const gfx::Point& point) { |
| 383 ui::MouseEvent event(ui::ET_MOUSE_EXITED, point, point, ui::EF_NONE); | 383 ui::MouseEvent event(ui::ET_MOUSE_EXITED, point, point, ui::EF_NONE, |
| 384 ui::EF_NONE); |
| 384 DispatchDetails details = | 385 DispatchDetails details = |
| 385 DispatchMouseEnterOrExit(event, ui::ET_MOUSE_EXITED); | 386 DispatchMouseEnterOrExit(event, ui::ET_MOUSE_EXITED); |
| 386 if (details.dispatcher_destroyed) | 387 if (details.dispatcher_destroyed) |
| 387 return; | 388 return; |
| 388 } | 389 } |
| 389 | 390 |
| 390 void RootWindow::OnWindowVisibilityChanged(Window* window, bool is_visible) { | 391 void RootWindow::OnWindowVisibilityChanged(Window* window, bool is_visible) { |
| 391 if (!is_visible) | 392 if (!is_visible) |
| 392 OnWindowHidden(window, WINDOW_HIDDEN); | 393 OnWindowHidden(window, WINDOW_HIDDEN); |
| 393 | 394 |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 // |mouse_moved_handler_| may have been set to a Window in a different root | 626 // |mouse_moved_handler_| may have been set to a Window in a different root |
| 626 // (see below). Clear it here to ensure we don't end up referencing a stale | 627 // (see below). Clear it here to ensure we don't end up referencing a stale |
| 627 // Window. | 628 // Window. |
| 628 if (mouse_moved_handler_ && !window()->Contains(mouse_moved_handler_)) | 629 if (mouse_moved_handler_ && !window()->Contains(mouse_moved_handler_)) |
| 629 mouse_moved_handler_ = NULL; | 630 mouse_moved_handler_ = NULL; |
| 630 | 631 |
| 631 if (old_capture && old_capture->GetRootWindow() == window() && | 632 if (old_capture && old_capture->GetRootWindow() == window() && |
| 632 old_capture->delegate()) { | 633 old_capture->delegate()) { |
| 633 // Send a capture changed event with bogus location data. | 634 // Send a capture changed event with bogus location data. |
| 634 ui::MouseEvent event(ui::ET_MOUSE_CAPTURE_CHANGED, gfx::Point(), | 635 ui::MouseEvent event(ui::ET_MOUSE_CAPTURE_CHANGED, gfx::Point(), |
| 635 gfx::Point(), 0); | 636 gfx::Point(), 0, 0); |
| 636 | 637 |
| 637 DispatchDetails details = DispatchEvent(old_capture, &event); | 638 DispatchDetails details = DispatchEvent(old_capture, &event); |
| 638 if (details.dispatcher_destroyed) | 639 if (details.dispatcher_destroyed) |
| 639 return; | 640 return; |
| 640 | 641 |
| 641 old_capture->delegate()->OnCaptureLost(); | 642 old_capture->delegate()->OnCaptureLost(); |
| 642 } | 643 } |
| 643 | 644 |
| 644 if (new_capture) { | 645 if (new_capture) { |
| 645 // Make all subsequent mouse events go to the capture window. We shouldn't | 646 // Make all subsequent mouse events go to the capture window. We shouldn't |
| (...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1129 synthesize_mouse_move_ = false; | 1130 synthesize_mouse_move_ = false; |
| 1130 gfx::Point root_mouse_location = GetLastMouseLocationInRoot(); | 1131 gfx::Point root_mouse_location = GetLastMouseLocationInRoot(); |
| 1131 if (!window()->bounds().Contains(root_mouse_location)) | 1132 if (!window()->bounds().Contains(root_mouse_location)) |
| 1132 return details; | 1133 return details; |
| 1133 gfx::Point host_mouse_location = root_mouse_location; | 1134 gfx::Point host_mouse_location = root_mouse_location; |
| 1134 ConvertPointToHost(&host_mouse_location); | 1135 ConvertPointToHost(&host_mouse_location); |
| 1135 | 1136 |
| 1136 ui::MouseEvent event(ui::ET_MOUSE_MOVED, | 1137 ui::MouseEvent event(ui::ET_MOUSE_MOVED, |
| 1137 host_mouse_location, | 1138 host_mouse_location, |
| 1138 host_mouse_location, | 1139 host_mouse_location, |
| 1139 ui::EF_IS_SYNTHESIZED); | 1140 ui::EF_IS_SYNTHESIZED, |
| 1141 0); |
| 1140 return OnHostMouseEventImpl(&event); | 1142 return OnHostMouseEventImpl(&event); |
| 1141 } | 1143 } |
| 1142 | 1144 |
| 1143 void RootWindow::SynthesizeMouseMoveEventAsync() { | 1145 void RootWindow::SynthesizeMouseMoveEventAsync() { |
| 1144 DispatchDetails details = SynthesizeMouseMoveEvent(); | 1146 DispatchDetails details = SynthesizeMouseMoveEvent(); |
| 1145 if (details.dispatcher_destroyed) | 1147 if (details.dispatcher_destroyed) |
| 1146 return; | 1148 return; |
| 1147 } | 1149 } |
| 1148 | 1150 |
| 1149 gfx::Transform RootWindow::GetInverseRootTransform() const { | 1151 gfx::Transform RootWindow::GetInverseRootTransform() const { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1160 flags |= ui::EF_IS_NON_CLIENT; | 1162 flags |= ui::EF_IS_NON_CLIENT; |
| 1161 event->set_flags(flags); | 1163 event->set_flags(flags); |
| 1162 | 1164 |
| 1163 if (!dispatching_held_event_) { | 1165 if (!dispatching_held_event_) { |
| 1164 SetLastMouseLocation(window(), event->location()); | 1166 SetLastMouseLocation(window(), event->location()); |
| 1165 synthesize_mouse_move_ = false; | 1167 synthesize_mouse_move_ = false; |
| 1166 } | 1168 } |
| 1167 } | 1169 } |
| 1168 | 1170 |
| 1169 } // namespace aura | 1171 } // namespace aura |
| OLD | NEW |