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 "content/browser/renderer_host/render_widget_host_view_mac.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_mac.h" |
6 | 6 |
7 #import <objc/runtime.h> | 7 #import <objc/runtime.h> |
8 #include <OpenGL/gl.h> | 8 #include <OpenGL/gl.h> |
9 #include <QuartzCore/QuartzCore.h> | 9 #include <QuartzCore/QuartzCore.h> |
10 #include <stdint.h> | 10 #include <stdint.h> |
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 render_widget_host_->SetView(this); | 590 render_widget_host_->SetView(this); |
591 | 591 |
592 // Let the page-level input event router know about our surface ID | 592 // Let the page-level input event router know about our surface ID |
593 // namespace for surface-based hit testing. | 593 // namespace for surface-based hit testing. |
594 if (render_widget_host_->delegate() && | 594 if (render_widget_host_->delegate() && |
595 render_widget_host_->delegate()->GetInputEventRouter()) { | 595 render_widget_host_->delegate()->GetInputEventRouter()) { |
596 render_widget_host_->delegate() | 596 render_widget_host_->delegate() |
597 ->GetInputEventRouter() | 597 ->GetInputEventRouter() |
598 ->AddSurfaceIdNamespaceOwner(GetSurfaceIdNamespace(), this); | 598 ->AddSurfaceIdNamespaceOwner(GetSurfaceIdNamespace(), this); |
599 } | 599 } |
| 600 |
| 601 if (!render_widget_host_->is_hidden()) |
| 602 EnsureBrowserCompositorView(); |
600 } | 603 } |
601 | 604 |
602 RenderWidgetHostViewMac::~RenderWidgetHostViewMac() { | 605 RenderWidgetHostViewMac::~RenderWidgetHostViewMac() { |
603 display::Screen::GetScreen()->RemoveObserver(this); | 606 display::Screen::GetScreen()->RemoveObserver(this); |
604 | 607 |
605 // This is being called from |cocoa_view_|'s destructor, so invalidate the | 608 // This is being called from |cocoa_view_|'s destructor, so invalidate the |
606 // pointer. | 609 // pointer. |
607 cocoa_view_ = nil; | 610 cocoa_view_ = nil; |
608 | 611 |
609 UnlockMouse(); | 612 UnlockMouse(); |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 render_widget_host_->NotifyScreenInfoChanged(); | 883 render_widget_host_->NotifyScreenInfoChanged(); |
881 } | 884 } |
882 | 885 |
883 RenderWidgetHost* RenderWidgetHostViewMac::GetRenderWidgetHost() const { | 886 RenderWidgetHost* RenderWidgetHostViewMac::GetRenderWidgetHost() const { |
884 return render_widget_host_; | 887 return render_widget_host_; |
885 } | 888 } |
886 | 889 |
887 void RenderWidgetHostViewMac::Show() { | 890 void RenderWidgetHostViewMac::Show() { |
888 ScopedCAActionDisabler disabler; | 891 ScopedCAActionDisabler disabler; |
889 [cocoa_view_ setHidden:NO]; | 892 [cocoa_view_ setHidden:NO]; |
890 if (!render_widget_host_->is_hidden()) | |
891 return; | |
892 | 893 |
893 // Re-create the browser compositor. If the DelegatedFrameHost has a cached | 894 // Re-create the browser compositor. If the DelegatedFrameHost has a cached |
894 // frame from the last time it was visible, then it will immediately be | 895 // frame from the last time it was visible, then it will immediately be |
895 // drawn. If not, then the compositor will remain locked until a new delegated | 896 // drawn. If not, then the compositor will remain locked until a new delegated |
896 // frame is swapped. | 897 // frame is swapped. |
897 EnsureBrowserCompositorView(); | 898 EnsureBrowserCompositorView(); |
898 | 899 |
| 900 if (!render_widget_host_->is_hidden()) |
| 901 return; |
| 902 |
899 WasUnOccluded(); | 903 WasUnOccluded(); |
900 | 904 |
901 // If there is not a frame being currently drawn, kick one, so that the below | 905 // If there is not a frame being currently drawn, kick one, so that the below |
902 // pause will have a frame to wait on. | 906 // pause will have a frame to wait on. |
903 render_widget_host_->ScheduleComposite(); | 907 render_widget_host_->ScheduleComposite(); |
904 PauseForPendingResizeOrRepaintsAndDraw(); | 908 PauseForPendingResizeOrRepaintsAndDraw(); |
905 } | 909 } |
906 | 910 |
907 void RenderWidgetHostViewMac::Hide() { | 911 void RenderWidgetHostViewMac::Hide() { |
908 ScopedCAActionDisabler disabler; | 912 ScopedCAActionDisabler disabler; |
(...skipping 2533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3442 | 3446 |
3443 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding | 3447 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding |
3444 // regions that are not draggable. (See ControlRegionView in | 3448 // regions that are not draggable. (See ControlRegionView in |
3445 // native_app_window_cocoa.mm). This requires the render host view to be | 3449 // native_app_window_cocoa.mm). This requires the render host view to be |
3446 // draggable by default. | 3450 // draggable by default. |
3447 - (BOOL)mouseDownCanMoveWindow { | 3451 - (BOOL)mouseDownCanMoveWindow { |
3448 return YES; | 3452 return YES; |
3449 } | 3453 } |
3450 | 3454 |
3451 @end | 3455 @end |
OLD | NEW |