Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/exo/surface.h" | 5 #include "components/exo/surface.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 71 public: | 71 public: |
| 72 explicit CustomWindowDelegate(Surface* surface) : surface_(surface) {} | 72 explicit CustomWindowDelegate(Surface* surface) : surface_(surface) {} |
| 73 ~CustomWindowDelegate() override {} | 73 ~CustomWindowDelegate() override {} |
| 74 | 74 |
| 75 // Overridden from aura::WindowDelegate: | 75 // Overridden from aura::WindowDelegate: |
| 76 gfx::Size GetMinimumSize() const override { return gfx::Size(); } | 76 gfx::Size GetMinimumSize() const override { return gfx::Size(); } |
| 77 gfx::Size GetMaximumSize() const override { return gfx::Size(); } | 77 gfx::Size GetMaximumSize() const override { return gfx::Size(); } |
| 78 void OnBoundsChanged(const gfx::Rect& old_bounds, | 78 void OnBoundsChanged(const gfx::Rect& old_bounds, |
| 79 const gfx::Rect& new_bounds) override {} | 79 const gfx::Rect& new_bounds) override {} |
| 80 gfx::NativeCursor GetCursor(const gfx::Point& point) override { | 80 gfx::NativeCursor GetCursor(const gfx::Point& point) override { |
| 81 return ui::kCursorNone; | 81 // If surface has a cursor provider then return 'none' as cursor providers |
| 82 // are responsible for drawing cursors. Use default cursor if no cursor | |
| 83 // provider is registered. | |
| 84 return surface_->HasCursorProvider() ? ui::kCursorNone : ui::kCursorNull; | |
|
Daniele Castagna
2016/05/31 19:32:03
I understand that when kCursorNull is returns the
| |
| 82 } | 85 } |
| 83 int GetNonClientComponent(const gfx::Point& point) const override { | 86 int GetNonClientComponent(const gfx::Point& point) const override { |
| 84 return HTNOWHERE; | 87 return HTNOWHERE; |
| 85 } | 88 } |
| 86 bool ShouldDescendIntoChildForEventHandling( | 89 bool ShouldDescendIntoChildForEventHandling( |
| 87 aura::Window* child, | 90 aura::Window* child, |
| 88 const gfx::Point& location) override { | 91 const gfx::Point& location) override { |
| 89 return true; | 92 return true; |
| 90 } | 93 } |
| 91 bool CanFocus() override { return true; } | 94 bool CanFocus() override { return true; } |
| (...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 733 Surface* sub_surface = sub_surface_entry.first; | 736 Surface* sub_surface = sub_surface_entry.first; |
| 734 if (!sub_surface->has_contents()) | 737 if (!sub_surface->has_contents()) |
| 735 continue; | 738 continue; |
| 736 non_transparent_bounds.Union(sub_surface->GetNonTransparentBounds() + | 739 non_transparent_bounds.Union(sub_surface->GetNonTransparentBounds() + |
| 737 sub_surface->bounds().OffsetFromOrigin()); | 740 sub_surface->bounds().OffsetFromOrigin()); |
| 738 } | 741 } |
| 739 | 742 |
| 740 return non_transparent_bounds; | 743 return non_transparent_bounds; |
| 741 } | 744 } |
| 742 | 745 |
| 746 void Surface::RegisterCursorProvider(Pointer* provider) { | |
| 747 cursor_providers_.insert(provider); | |
| 748 } | |
| 749 | |
| 750 void Surface::UnregisterCursorProvider(Pointer* provider) { | |
| 751 cursor_providers_.erase(provider); | |
| 752 } | |
| 753 | |
| 754 bool Surface::HasCursorProvider() const { | |
| 755 return !cursor_providers_.empty(); | |
| 756 } | |
| 757 | |
| 743 void Surface::SetSurfaceDelegate(SurfaceDelegate* delegate) { | 758 void Surface::SetSurfaceDelegate(SurfaceDelegate* delegate) { |
| 744 DCHECK(!delegate_ || !delegate); | 759 DCHECK(!delegate_ || !delegate); |
| 745 delegate_ = delegate; | 760 delegate_ = delegate; |
| 746 } | 761 } |
| 747 | 762 |
| 748 bool Surface::HasSurfaceDelegate() const { | 763 bool Surface::HasSurfaceDelegate() const { |
| 749 return !!delegate_; | 764 return !!delegate_; |
| 750 } | 765 } |
| 751 | 766 |
| 752 void Surface::AddSurfaceObserver(SurfaceObserver* observer) { | 767 void Surface::AddSurfaceObserver(SurfaceObserver* observer) { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 850 void Surface::WillDraw(cc::SurfaceId id) { | 865 void Surface::WillDraw(cc::SurfaceId id) { |
| 851 while (!active_frame_callbacks_.empty()) { | 866 while (!active_frame_callbacks_.empty()) { |
| 852 active_frame_callbacks_.front().Run(base::TimeTicks::Now()); | 867 active_frame_callbacks_.front().Run(base::TimeTicks::Now()); |
| 853 active_frame_callbacks_.pop_front(); | 868 active_frame_callbacks_.pop_front(); |
| 854 } | 869 } |
| 855 } | 870 } |
| 856 | 871 |
| 857 bool Surface::use_surface_layer_ = false; | 872 bool Surface::use_surface_layer_ = false; |
| 858 | 873 |
| 859 } // namespace exo | 874 } // namespace exo |
| OLD | NEW |