| 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 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 held_repostable_event_.reset(); | 187 held_repostable_event_.reset(); |
| 188 // TODO(rbyers): Reposing of gestures is tricky to get | 188 // TODO(rbyers): Reposing of gestures is tricky to get |
| 189 // right, so it's not yet supported. crbug.com/170987. | 189 // right, so it's not yet supported. crbug.com/170987. |
| 190 } | 190 } |
| 191 } | 191 } |
| 192 | 192 |
| 193 WindowTreeHostDelegate* RootWindow::AsWindowTreeHostDelegate() { | 193 WindowTreeHostDelegate* RootWindow::AsWindowTreeHostDelegate() { |
| 194 return this; | 194 return this; |
| 195 } | 195 } |
| 196 | 196 |
| 197 void RootWindow::SetHostSize(const gfx::Size& size_in_pixel) { | |
| 198 DispatchDetails details = DispatchHeldEvents(); | |
| 199 if (details.dispatcher_destroyed) | |
| 200 return; | |
| 201 gfx::Rect bounds = host_->GetBounds(); | |
| 202 bounds.set_size(size_in_pixel); | |
| 203 host_->SetBounds(bounds); | |
| 204 | |
| 205 // Requery the location to constrain it within the new root window size. | |
| 206 gfx::Point point; | |
| 207 if (host_->QueryMouseLocation(&point)) { | |
| 208 SetLastMouseLocation(window(), | |
| 209 ui::ConvertPointToDIP(window()->layer(), point)); | |
| 210 } | |
| 211 | |
| 212 synthesize_mouse_move_ = false; | |
| 213 } | |
| 214 | |
| 215 void RootWindow::SetHostBounds(const gfx::Rect& bounds_in_pixel) { | |
| 216 DCHECK(!bounds_in_pixel.IsEmpty()); | |
| 217 DispatchDetails details = DispatchHeldEvents(); | |
| 218 if (details.dispatcher_destroyed) | |
| 219 return; | |
| 220 host_->SetBounds(bounds_in_pixel); | |
| 221 synthesize_mouse_move_ = false; | |
| 222 } | |
| 223 | |
| 224 void RootWindow::SetCursor(gfx::NativeCursor cursor) { | 197 void RootWindow::SetCursor(gfx::NativeCursor cursor) { |
| 225 last_cursor_ = cursor; | 198 last_cursor_ = cursor; |
| 226 // A lot of code seems to depend on NULL cursors actually showing an arrow, | 199 // A lot of code seems to depend on NULL cursors actually showing an arrow, |
| 227 // so just pass everything along to the host. | 200 // so just pass everything along to the host. |
| 228 host_->SetCursor(cursor); | 201 host_->SetCursor(cursor); |
| 229 } | 202 } |
| 230 | 203 |
| 231 void RootWindow::OnCursorVisibilityChanged(bool show) { | 204 void RootWindow::OnCursorVisibilityChanged(bool show) { |
| 232 // Clear any existing mouse hover effects when the cursor becomes invisible. | 205 // Clear any existing mouse hover effects when the cursor becomes invisible. |
| 233 // Note we do not need to dispatch a mouse enter when the cursor becomes | 206 // Note we do not need to dispatch a mouse enter when the cursor becomes |
| (...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 733 | 706 |
| 734 void RootWindow::OnHostResized(const gfx::Size& size) { | 707 void RootWindow::OnHostResized(const gfx::Size& size) { |
| 735 TRACE_EVENT1("ui", "RootWindow::OnHostResized", | 708 TRACE_EVENT1("ui", "RootWindow::OnHostResized", |
| 736 "size", size.ToString()); | 709 "size", size.ToString()); |
| 737 | 710 |
| 738 DispatchDetails details = DispatchHeldEvents(); | 711 DispatchDetails details = DispatchHeldEvents(); |
| 739 if (details.dispatcher_destroyed) | 712 if (details.dispatcher_destroyed) |
| 740 return; | 713 return; |
| 741 FOR_EACH_OBSERVER(RootWindowObserver, observers_, | 714 FOR_EACH_OBSERVER(RootWindowObserver, observers_, |
| 742 OnWindowTreeHostResized(this)); | 715 OnWindowTreeHostResized(this)); |
| 716 |
| 717 // Constrain the mouse position within the new root Window size. |
| 718 gfx::Point point; |
| 719 if (host_->QueryMouseLocation(&point)) { |
| 720 SetLastMouseLocation(window(), |
| 721 ui::ConvertPointToDIP(window()->layer(), point)); |
| 722 } |
| 723 synthesize_mouse_move_ = false; |
| 743 } | 724 } |
| 744 | 725 |
| 745 RootWindow* RootWindow::AsRootWindow() { | 726 RootWindow* RootWindow::AsRootWindow() { |
| 746 return this; | 727 return this; |
| 747 } | 728 } |
| 748 | 729 |
| 749 const RootWindow* RootWindow::AsRootWindow() const { | 730 const RootWindow* RootWindow::AsRootWindow() const { |
| 750 return this; | 731 return this; |
| 751 } | 732 } |
| 752 | 733 |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1007 break; | 988 break; |
| 1008 | 989 |
| 1009 default: | 990 default: |
| 1010 NOTREACHED(); | 991 NOTREACHED(); |
| 1011 break; | 992 break; |
| 1012 } | 993 } |
| 1013 PreDispatchLocatedEvent(target, event); | 994 PreDispatchLocatedEvent(target, event); |
| 1014 } | 995 } |
| 1015 | 996 |
| 1016 } // namespace aura | 997 } // namespace aura |
| OLD | NEW |