OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // Need Win 7 headers for WM_GESTURE and ChangeWindowMessageFilterEx | 5 // Need Win 7 headers for WM_GESTURE and ChangeWindowMessageFilterEx |
6 // TODO(jschuh): See crbug.com/92941 for longterm fix. | 6 // TODO(jschuh): See crbug.com/92941 for longterm fix. |
7 #undef WINVER | 7 #undef WINVER |
8 #define WINVER _WIN32_WINNT_WIN7 | 8 #define WINVER _WIN32_WINNT_WIN7 |
9 #undef _WIN32_WINNT | 9 #undef _WIN32_WINNT |
10 #define _WIN32_WINNT _WIN32_WINNT_WIN7 | 10 #define _WIN32_WINNT _WIN32_WINNT_WIN7 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
46 #include "ui/base/l10n/l10n_util_win.h" | 46 #include "ui/base/l10n/l10n_util_win.h" |
47 #include "ui/base/text/text_elider.h" | 47 #include "ui/base/text/text_elider.h" |
48 #include "ui/base/view_prop.h" | 48 #include "ui/base/view_prop.h" |
49 #include "ui/base/win/hwnd_util.h" | 49 #include "ui/base/win/hwnd_util.h" |
50 #include "ui/base/win/mouse_wheel_util.h" | 50 #include "ui/base/win/mouse_wheel_util.h" |
51 #include "ui/gfx/canvas.h" | 51 #include "ui/gfx/canvas.h" |
52 #include "ui/gfx/canvas_skia.h" | 52 #include "ui/gfx/canvas_skia.h" |
53 #include "ui/gfx/gdi_util.h" | 53 #include "ui/gfx/gdi_util.h" |
54 #include "ui/gfx/rect.h" | 54 #include "ui/gfx/rect.h" |
55 #include "ui/gfx/screen.h" | 55 #include "ui/gfx/screen.h" |
56 #include "views/focus/focus_manager.h" | |
57 #include "views/widget/widget.h" | |
58 #include "webkit/glue/webaccessibility.h" | 56 #include "webkit/glue/webaccessibility.h" |
59 #include "webkit/glue/webcursor.h" | 57 #include "webkit/glue/webcursor.h" |
60 #include "webkit/plugins/npapi/plugin_constants_win.h" | 58 #include "webkit/plugins/npapi/plugin_constants_win.h" |
61 #include "webkit/plugins/npapi/webplugin.h" | 59 #include "webkit/plugins/npapi/webplugin.h" |
62 #include "webkit/plugins/npapi/webplugin_delegate_impl.h" | 60 #include "webkit/plugins/npapi/webplugin_delegate_impl.h" |
63 | 61 |
64 using base::TimeDelta; | 62 using base::TimeDelta; |
65 using base::TimeTicks; | 63 using base::TimeTicks; |
66 using ui::ViewProp; | 64 using ui::ViewProp; |
67 using WebKit::WebInputEvent; | 65 using WebKit::WebInputEvent; |
(...skipping 13 matching lines...) Expand all Loading... | |
81 const int kMaxTooltipLength = 1024; | 79 const int kMaxTooltipLength = 1024; |
82 | 80 |
83 // A custom MSAA object id used to determine if a screen reader is actively | 81 // A custom MSAA object id used to determine if a screen reader is actively |
84 // listening for MSAA events. | 82 // listening for MSAA events. |
85 const int kIdCustom = 1; | 83 const int kIdCustom = 1; |
86 | 84 |
87 // The delay before the compositor host window is destroyed. This gives the GPU | 85 // The delay before the compositor host window is destroyed. This gives the GPU |
88 // process a grace period to stop referencing it. | 86 // process a grace period to stop referencing it. |
89 const int kDestroyCompositorHostWindowDelay = 10000; | 87 const int kDestroyCompositorHostWindowDelay = 10000; |
90 | 88 |
91 const char* const kRenderWidgetHostViewKey = "__RENDER_WIDGET_HOST_VIEW__"; | |
jam
2011/08/26 22:23:37
this is also code from r38685 that's not being use
| |
92 | |
93 // A callback function for EnumThreadWindows to enumerate and dismiss | 89 // A callback function for EnumThreadWindows to enumerate and dismiss |
94 // any owned popop windows | 90 // any owned popop windows |
95 BOOL CALLBACK DismissOwnedPopups(HWND window, LPARAM arg) { | 91 BOOL CALLBACK DismissOwnedPopups(HWND window, LPARAM arg) { |
96 const HWND toplevel_hwnd = reinterpret_cast<HWND>(arg); | 92 const HWND toplevel_hwnd = reinterpret_cast<HWND>(arg); |
97 | 93 |
98 if (::IsWindowVisible(window)) { | 94 if (::IsWindowVisible(window)) { |
99 const HWND owner = ::GetWindow(window, GW_OWNER); | 95 const HWND owner = ::GetWindow(window, GW_OWNER); |
100 if (toplevel_hwnd == owner) { | 96 if (toplevel_hwnd == owner) { |
101 ::PostMessage(window, WM_CANCELMODE, 0, 0); | 97 ::PostMessage(window, WM_CANCELMODE, 0, 0); |
102 } | 98 } |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
512 // Popups should not be activated. | 508 // Popups should not be activated. |
513 return popup_type_ == WebKit::WebPopupTypeNone; | 509 return popup_type_ == WebKit::WebPopupTypeNone; |
514 } | 510 } |
515 | 511 |
516 void RenderWidgetHostViewWin::Focus() { | 512 void RenderWidgetHostViewWin::Focus() { |
517 if (IsWindow()) | 513 if (IsWindow()) |
518 SetFocus(); | 514 SetFocus(); |
519 } | 515 } |
520 | 516 |
521 void RenderWidgetHostViewWin::Blur() { | 517 void RenderWidgetHostViewWin::Blur() { |
522 views::Widget* widget = views::Widget::GetTopLevelWidgetForNativeView(m_hWnd); | 518 NOTREACHED(); |
jam
2011/08/26 22:23:37
I couldn't find any place that called this code, a
| |
523 if (widget) { | |
524 views::FocusManager* focus_manager = widget->GetFocusManager(); | |
525 // We don't have a FocusManager if we are hidden. | |
526 if (focus_manager) | |
527 focus_manager->ClearFocus(); | |
528 } | |
529 } | 519 } |
530 | 520 |
531 bool RenderWidgetHostViewWin::HasFocus() { | 521 bool RenderWidgetHostViewWin::HasFocus() { |
532 return ::GetFocus() == m_hWnd; | 522 return ::GetFocus() == m_hWnd; |
533 } | 523 } |
534 | 524 |
535 void RenderWidgetHostViewWin::Show() { | 525 void RenderWidgetHostViewWin::Show() { |
536 if (!is_fullscreen_) { | 526 if (!is_fullscreen_) { |
537 DCHECK(parent_hwnd_); | 527 DCHECK(parent_hwnd_); |
538 DCHECK(parent_hwnd_ != GetDesktopWindow()); | 528 DCHECK(parent_hwnd_ != GetDesktopWindow()); |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
801 /////////////////////////////////////////////////////////////////////////////// | 791 /////////////////////////////////////////////////////////////////////////////// |
802 // RenderWidgetHostViewWin, private: | 792 // RenderWidgetHostViewWin, private: |
803 | 793 |
804 LRESULT RenderWidgetHostViewWin::OnCreate(CREATESTRUCT* create_struct) { | 794 LRESULT RenderWidgetHostViewWin::OnCreate(CREATESTRUCT* create_struct) { |
805 // Call the WM_INPUTLANGCHANGE message handler to initialize the input locale | 795 // Call the WM_INPUTLANGCHANGE message handler to initialize the input locale |
806 // of a browser process. | 796 // of a browser process. |
807 OnInputLangChange(0, 0); | 797 OnInputLangChange(0, 0); |
808 // Marks that window as supporting mouse-wheel messages rerouting so it is | 798 // Marks that window as supporting mouse-wheel messages rerouting so it is |
809 // scrolled when under the mouse pointer even if inactive. | 799 // scrolled when under the mouse pointer even if inactive. |
810 props_.push_back(ui::SetWindowSupportsRerouteMouseWheel(m_hWnd)); | 800 props_.push_back(ui::SetWindowSupportsRerouteMouseWheel(m_hWnd)); |
811 props_.push_back(new ViewProp(m_hWnd, kRenderWidgetHostViewKey, | |
812 static_cast<RenderWidgetHostView*>(this))); | |
813 | 801 |
814 return 0; | 802 return 0; |
815 } | 803 } |
816 | 804 |
817 void RenderWidgetHostViewWin::OnActivate(UINT action, BOOL minimized, | 805 void RenderWidgetHostViewWin::OnActivate(UINT action, BOOL minimized, |
818 HWND window) { | 806 HWND window) { |
819 // If the container is a popup, clicking elsewhere on screen should close the | 807 // If the container is a popup, clicking elsewhere on screen should close the |
820 // popup. | 808 // popup. |
821 if (close_on_deactivate_ && action == WA_INACTIVE) { | 809 if (close_on_deactivate_ && action == WA_INACTIVE) { |
822 // Send a windows message so that any derived classes | 810 // Send a windows message so that any derived classes |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1008 return 1; | 996 return 1; |
1009 } | 997 } |
1010 | 998 |
1011 LRESULT RenderWidgetHostViewWin::OnSetCursor(HWND window, UINT hittest_code, | 999 LRESULT RenderWidgetHostViewWin::OnSetCursor(HWND window, UINT hittest_code, |
1012 UINT mouse_message_id) { | 1000 UINT mouse_message_id) { |
1013 UpdateCursorIfOverSelf(); | 1001 UpdateCursorIfOverSelf(); |
1014 return 0; | 1002 return 0; |
1015 } | 1003 } |
1016 | 1004 |
1017 void RenderWidgetHostViewWin::OnSetFocus(HWND window) { | 1005 void RenderWidgetHostViewWin::OnSetFocus(HWND window) { |
1018 views::FocusManager::GetWidgetFocusManager()->OnWidgetFocusEvent(window, | |
jam
2011/08/26 22:23:37
this code, and below, were added in r49884 so that
| |
1019 m_hWnd); | |
1020 if (browser_accessibility_manager_.get()) | 1006 if (browser_accessibility_manager_.get()) |
1021 browser_accessibility_manager_->GotFocus(); | 1007 browser_accessibility_manager_->GotFocus(); |
1022 if (render_widget_host_) | 1008 if (render_widget_host_) |
1023 render_widget_host_->GotFocus(); | 1009 render_widget_host_->GotFocus(); |
1024 } | 1010 } |
1025 | 1011 |
1026 void RenderWidgetHostViewWin::OnKillFocus(HWND window) { | 1012 void RenderWidgetHostViewWin::OnKillFocus(HWND window) { |
1027 views::FocusManager::GetWidgetFocusManager()->OnWidgetFocusEvent(m_hWnd, | |
1028 window); | |
1029 | |
1030 if (render_widget_host_) | 1013 if (render_widget_host_) |
1031 render_widget_host_->Blur(); | 1014 render_widget_host_->Blur(); |
1032 } | 1015 } |
1033 | 1016 |
1034 void RenderWidgetHostViewWin::OnCaptureChanged(HWND window) { | 1017 void RenderWidgetHostViewWin::OnCaptureChanged(HWND window) { |
1035 if (render_widget_host_) | 1018 if (render_widget_host_) |
1036 render_widget_host_->LostCapture(); | 1019 render_widget_host_->LostCapture(); |
1037 } | 1020 } |
1038 | 1021 |
1039 void RenderWidgetHostViewWin::OnCancelMode() { | 1022 void RenderWidgetHostViewWin::OnCancelMode() { |
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1853 DWORD ex_style) { | 1836 DWORD ex_style) { |
1854 parent_hwnd_ = parent_hwnd; | 1837 parent_hwnd_ = parent_hwnd; |
1855 Create(parent_hwnd_, NULL, NULL, WS_POPUP, ex_style); | 1838 Create(parent_hwnd_, NULL, NULL, WS_POPUP, ex_style); |
1856 MoveWindow(pos.x(), pos.y(), pos.width(), pos.height(), TRUE); | 1839 MoveWindow(pos.x(), pos.y(), pos.width(), pos.height(), TRUE); |
1857 // To show tooltip on popup window.(e.g. title in <select>) | 1840 // To show tooltip on popup window.(e.g. title in <select>) |
1858 // Popups default to showing, which means |DidBecomeSelected()| isn't invoked. | 1841 // Popups default to showing, which means |DidBecomeSelected()| isn't invoked. |
1859 // Ensure the tooltip is created otherwise tooltips are never shown. | 1842 // Ensure the tooltip is created otherwise tooltips are never shown. |
1860 EnsureTooltip(); | 1843 EnsureTooltip(); |
1861 ShowWindow(IsActivatable() ? SW_SHOW : SW_SHOWNA); | 1844 ShowWindow(IsActivatable() ? SW_SHOW : SW_SHOWNA); |
1862 } | 1845 } |
OLD | NEW |