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 #import "chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.h" | 5 #import "chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/memory/scoped_nsobject.h" | 9 #include "base/memory/scoped_nsobject.h" |
10 #include "content/browser/renderer_host/render_view_host.h" | 10 #include "content/browser/renderer_host/render_view_host.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 // We're the current tab if we're in the view hierarchy, otherwise some other | 71 // We're the current tab if we're in the view hierarchy, otherwise some other |
72 // tab is. | 72 // tab is. |
73 return [[self view] superview] ? YES : NO; | 73 return [[self view] superview] ? YES : NO; |
74 } | 74 } |
75 | 75 |
76 - (void)willBecomeUnselectedTab { | 76 - (void)willBecomeUnselectedTab { |
77 // The RWHV is ripped out of the view hierarchy on tab switches, so it never | 77 // The RWHV is ripped out of the view hierarchy on tab switches, so it never |
78 // formally resigns first responder status. Handle this by explicitly sending | 78 // formally resigns first responder status. Handle this by explicitly sending |
79 // a Blur() message to the renderer, but only if the RWHV currently has focus. | 79 // a Blur() message to the renderer, but only if the RWHV currently has focus. |
80 RenderViewHost* rvh = [self webContents]->GetRenderViewHost(); | 80 RenderViewHost* rvh = [self webContents]->GetRenderViewHost(); |
81 if (rvh && rvh->view() && rvh->view()->HasFocus()) | 81 if (rvh && rvh->GetView() && rvh->GetView()->HasFocus()) |
82 rvh->Blur(); | 82 rvh->Blur(); |
83 } | 83 } |
84 | 84 |
85 - (void)willBecomeSelectedTab { | 85 - (void)willBecomeSelectedTab { |
86 // Do not explicitly call Focus() here, as the RWHV may not actually have | 86 // Do not explicitly call Focus() here, as the RWHV may not actually have |
87 // focus (for example, if the omnibox has focus instead). The TabContents | 87 // focus (for example, if the omnibox has focus instead). The TabContents |
88 // logic will restore focus to the appropriate view. | 88 // logic will restore focus to the appropriate view. |
89 } | 89 } |
90 | 90 |
91 - (void)tabDidChange:(WebContents*)updatedContents { | 91 - (void)tabDidChange:(WebContents*)updatedContents { |
92 // Calling setContentView: here removes any first responder status | 92 // Calling setContentView: here removes any first responder status |
93 // the view may have, so avoid changing the view hierarchy unless | 93 // the view may have, so avoid changing the view hierarchy unless |
94 // the view is different. | 94 // the view is different. |
95 if ([self webContents] != updatedContents) { | 95 if ([self webContents] != updatedContents) { |
96 contents_ = updatedContents; | 96 contents_ = updatedContents; |
97 [self ensureContentsVisible]; | 97 [self ensureContentsVisible]; |
98 } | 98 } |
99 } | 99 } |
100 | 100 |
101 @end | 101 @end |
OLD | NEW |