Index: views/controls/native/native_view_host_win.cc |
=================================================================== |
--- views/controls/native/native_view_host_win.cc (revision 27114) |
+++ views/controls/native/native_view_host_win.cc (working copy) |
@@ -6,13 +6,10 @@ |
#include "app/gfx/canvas.h" |
#include "base/logging.h" |
-#include "base/win_util.h" |
#include "views/controls/native/native_view_host.h" |
#include "views/focus/focus_manager.h" |
#include "views/widget/widget.h" |
-const wchar_t* kNativeViewHostWinKey = L"__NATIVE_VIEW_HOST_WIN__"; |
- |
namespace views { |
//////////////////////////////////////////////////////////////////////////////// |
@@ -20,8 +17,7 @@ |
NativeViewHostWin::NativeViewHostWin(NativeViewHost* host) |
: host_(host), |
- installed_clip_(false), |
- original_wndproc_(NULL) { |
+ installed_clip_(false) { |
} |
NativeViewHostWin::~NativeViewHostWin() { |
@@ -41,32 +37,10 @@ |
// Need to set the HWND's parent before changing its size to avoid flashing. |
SetParent(host_->native_view(), host_->GetWidget()->GetNativeView()); |
host_->Layout(); |
- |
- // Subclass the appropriate HWND to get focus notifications. |
- HWND focus_hwnd = host_->focus_native_view(); |
- DCHECK(focus_hwnd == host_->native_view() || |
- ::IsChild(host_->native_view(), focus_hwnd)); |
- original_wndproc_ = |
- win_util::SetWindowProc(focus_hwnd, |
- &NativeViewHostWin::NativeViewHostWndProc); |
- |
- // We use a property to retrieve the NativeViewHostWin from the window |
- // procedure. |
- ::SetProp(focus_hwnd, kNativeViewHostWinKey, this); |
} |
void NativeViewHostWin::NativeViewDetaching() { |
installed_clip_ = false; |
- |
- // Restore the original Windows procedure. |
- DCHECK(original_wndproc_); |
- WNDPROC wndproc = win_util::SetWindowProc(host_->focus_native_view(), |
- original_wndproc_); |
- DCHECK(wndproc == &NativeViewHostWin::NativeViewHostWndProc); |
- |
- // Also remove the property, it's not needed anymore. |
- HANDLE h = ::RemoveProp(host_->focus_native_view(), kNativeViewHostWinKey); |
- DCHECK(h == this); |
} |
void NativeViewHostWin::AddedToWidget() { |
@@ -142,22 +116,8 @@ |
SWP_NOREDRAW | SWP_NOOWNERZORDER); |
} |
-// static |
-LRESULT CALLBACK NativeViewHostWin::NativeViewHostWndProc(HWND window, |
- UINT message, |
- WPARAM w_param, |
- LPARAM l_param) { |
- NativeViewHostWin* native_view_host = |
- static_cast<NativeViewHostWin*>(::GetProp(window, kNativeViewHostWinKey)); |
- DCHECK(native_view_host); |
- |
- if (message == WM_SETFOCUS) |
- native_view_host->host_->GotNativeFocus(); |
- if (message == WM_DESTROY) |
- native_view_host->host_->Detach(); |
- |
- return CallWindowProc(native_view_host->original_wndproc_, |
- window, message, w_param, l_param); |
+void NativeViewHostWin::SetFocus() { |
+ ::SetFocus(host_->native_view()); |
} |
//////////////////////////////////////////////////////////////////////////////// |