OLD | NEW |
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 #import "ui/views/cocoa/bridged_native_widget.h" | 5 #import "ui/views/cocoa/bridged_native_widget.h" |
6 | 6 |
7 #import <objc/runtime.h> | 7 #import <objc/runtime.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #import "base/mac/foundation_util.h" | 10 #import "base/mac/foundation_util.h" |
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 return base::Closure(); | 881 return base::Closure(); |
882 } | 882 } |
883 | 883 |
884 //////////////////////////////////////////////////////////////////////////////// | 884 //////////////////////////////////////////////////////////////////////////////// |
885 // BridgedNativeWidget, AcceleratedWidgetMac: | 885 // BridgedNativeWidget, AcceleratedWidgetMac: |
886 | 886 |
887 NSView* BridgedNativeWidget::AcceleratedWidgetGetNSView() const { | 887 NSView* BridgedNativeWidget::AcceleratedWidgetGetNSView() const { |
888 return compositor_superview_; | 888 return compositor_superview_; |
889 } | 889 } |
890 | 890 |
891 bool BridgedNativeWidget::AcceleratedWidgetShouldIgnoreBackpressure() const { | |
892 return true; | |
893 } | |
894 | |
895 void BridgedNativeWidget::AcceleratedWidgetGetVSyncParameters( | 891 void BridgedNativeWidget::AcceleratedWidgetGetVSyncParameters( |
896 base::TimeTicks* timebase, base::TimeDelta* interval) const { | 892 base::TimeTicks* timebase, base::TimeDelta* interval) const { |
897 // TODO(tapted): Add vsync support. | 893 // TODO(tapted): Add vsync support. |
898 *timebase = base::TimeTicks(); | 894 *timebase = base::TimeTicks(); |
899 *interval = base::TimeDelta(); | 895 *interval = base::TimeDelta(); |
900 } | 896 } |
901 | 897 |
902 void BridgedNativeWidget::AcceleratedWidgetSwapCompleted( | 898 void BridgedNativeWidget::AcceleratedWidgetSwapCompleted() { |
903 const std::vector<ui::LatencyInfo>& latency_info) { | |
904 // Ignore frames arriving "late" for an old size. A frame at the new size | 899 // Ignore frames arriving "late" for an old size. A frame at the new size |
905 // should arrive soon. | 900 // should arrive soon. |
906 if (!compositor_widget_->HasFrameOfSize(GetClientAreaSize())) | 901 if (!compositor_widget_->HasFrameOfSize(GetClientAreaSize())) |
907 return; | 902 return; |
908 | 903 |
909 if (invalidate_shadow_on_frame_swap_) { | 904 if (invalidate_shadow_on_frame_swap_) { |
910 invalidate_shadow_on_frame_swap_ = false; | 905 invalidate_shadow_on_frame_swap_ = false; |
911 [window_ invalidateShadow]; | 906 [window_ invalidateShadow]; |
912 } | 907 } |
913 } | 908 } |
914 | 909 |
915 void BridgedNativeWidget::AcceleratedWidgetHitError() { | |
916 compositor_->ScheduleFullRedraw(); | |
917 } | |
918 | |
919 //////////////////////////////////////////////////////////////////////////////// | 910 //////////////////////////////////////////////////////////////////////////////// |
920 // BridgedNativeWidget, BridgedNativeWidgetOwner: | 911 // BridgedNativeWidget, BridgedNativeWidgetOwner: |
921 | 912 |
922 NSWindow* BridgedNativeWidget::GetNSWindow() { | 913 NSWindow* BridgedNativeWidget::GetNSWindow() { |
923 return window_; | 914 return window_; |
924 } | 915 } |
925 | 916 |
926 gfx::Vector2d BridgedNativeWidget::GetChildWindowOffset() const { | 917 gfx::Vector2d BridgedNativeWidget::GetChildWindowOffset() const { |
927 return gfx::ScreenRectFromNSRect([window_ frame]).OffsetFromOrigin(); | 918 return gfx::ScreenRectFromNSRect([window_ frame]).OffsetFromOrigin(); |
928 } | 919 } |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1179 [bridged_view_ setMouseDownCanMoveWindow:draggable]; | 1170 [bridged_view_ setMouseDownCanMoveWindow:draggable]; |
1180 // AppKit will not update its cache of mouseDownCanMoveWindow unless something | 1171 // AppKit will not update its cache of mouseDownCanMoveWindow unless something |
1181 // changes. Previously we tried adding an NSView and removing it, but for some | 1172 // changes. Previously we tried adding an NSView and removing it, but for some |
1182 // reason it required reposting the mouse-down event, and didn't always work. | 1173 // reason it required reposting the mouse-down event, and didn't always work. |
1183 // Calling the below seems to be an effective solution. | 1174 // Calling the below seems to be an effective solution. |
1184 [window_ setMovableByWindowBackground:NO]; | 1175 [window_ setMovableByWindowBackground:NO]; |
1185 [window_ setMovableByWindowBackground:YES]; | 1176 [window_ setMovableByWindowBackground:YES]; |
1186 } | 1177 } |
1187 | 1178 |
1188 } // namespace views | 1179 } // namespace views |
OLD | NEW |