| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this |
| 2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
| 3 // LICENSE file. | 3 // LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/views/autocomplete/autocomplete_popup_win.h" | 5 #include "chrome/browser/views/autocomplete/autocomplete_popup_win.h" |
| 6 | 6 |
| 7 #include "app/gfx/insets.h" | 7 #include "app/gfx/insets.h" |
| 8 #include "app/win_util.h" | 8 #include "app/win_util.h" |
| 9 #include "chrome/browser/autocomplete/autocomplete_edit_view_win.h" | 9 #include "chrome/browser/autocomplete/autocomplete_edit_view_win.h" |
| 10 #include "chrome/browser/autocomplete/autocomplete_popup_model.h" | 10 #include "chrome/browser/autocomplete/autocomplete_popup_model.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 set_window_ex_style(WS_EX_TOOLWINDOW | WS_EX_LAYERED); | 21 set_window_ex_style(WS_EX_TOOLWINDOW | WS_EX_LAYERED); |
| 22 } | 22 } |
| 23 | 23 |
| 24 AutocompletePopupWin::~AutocompletePopupWin() { | 24 AutocompletePopupWin::~AutocompletePopupWin() { |
| 25 } | 25 } |
| 26 | 26 |
| 27 void AutocompletePopupWin::Init(AutocompleteEditViewWin* edit_view, | 27 void AutocompletePopupWin::Init(AutocompleteEditViewWin* edit_view, |
| 28 views::View* contents) { | 28 views::View* contents) { |
| 29 // Create the popup | 29 // Create the popup |
| 30 WidgetWin::Init(edit_view->parent_view()->GetWidget()->GetNativeView(), | 30 WidgetWin::Init(edit_view->parent_view()->GetWidget()->GetNativeView(), |
| 31 contents_->GetPopupBounds(), false); | 31 contents_->GetPopupBounds()); |
| 32 // The contents is owned by the AutocompleteEditViewWin. |
| 33 contents_->SetParentOwned(false); |
| 32 // The contents is owned by the LocationBarView. | 34 // The contents is owned by the LocationBarView. |
| 33 contents_->SetParentOwned(false); | 35 contents_->SetParentOwned(false); |
| 34 SetContentsView(contents_); | 36 SetContentsView(contents_); |
| 35 | 37 |
| 36 // When an IME is attached to the rich-edit control, retrieve its window | 38 // When an IME is attached to the rich-edit control, retrieve its window |
| 37 // handle and show this popup window under the IME windows. | 39 // handle and show this popup window under the IME windows. |
| 38 // Otherwise, show this popup window under top-most windows. | 40 // Otherwise, show this popup window under top-most windows. |
| 39 // TODO(hbono): http://b/1111369 if we exclude this popup window from the | 41 // TODO(hbono): http://b/1111369 if we exclude this popup window from the |
| 40 // display area of IME windows, this workaround becomes unnecessary. | 42 // display area of IME windows, this workaround becomes unnecessary. |
| 41 HWND ime_window = ImmGetDefaultIMEWnd(edit_view->m_hWnd); | 43 HWND ime_window = ImmGetDefaultIMEWnd(edit_view->m_hWnd); |
| 42 SetWindowPos(ime_window ? ime_window : HWND_NOTOPMOST, 0, 0, 0, 0, | 44 SetWindowPos(ime_window ? ime_window : HWND_NOTOPMOST, 0, 0, 0, 0, |
| 43 SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW); | 45 SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW); |
| 44 } | 46 } |
| 45 | 47 |
| 46 void AutocompletePopupWin::Show() { | 48 void AutocompletePopupWin::Show() { |
| 47 // Move the popup to the place appropriate for the window's current position - | 49 // Move the popup to the place appropriate for the window's current position - |
| 48 // it may have been moved since it was last shown. | 50 // it may have been moved since it was last shown. |
| 49 SetBounds(contents_->GetPopupBounds()); | 51 SetBounds(contents_->GetPopupBounds()); |
| 50 if (!IsVisible()) | 52 if (!IsVisible()) |
| 51 WidgetWin::Show(); | 53 WidgetWin::Show(); |
| 52 } | 54 } |
| 53 | 55 |
| 54 //////////////////////////////////////////////////////////////////////////////// | 56 //////////////////////////////////////////////////////////////////////////////// |
| 55 // AutocompletePopupWin, WidgetWin overrides: | 57 // AutocompletePopupWin, WidgetWin overrides: |
| 56 | 58 |
| 57 LRESULT AutocompletePopupWin::OnMouseActivate(HWND window, UINT hit_test, | 59 LRESULT AutocompletePopupWin::OnMouseActivate(HWND window, UINT hit_test, |
| 58 UINT mouse_message) { | 60 UINT mouse_message) { |
| 59 return MA_NOACTIVATE; | 61 return MA_NOACTIVATE; |
| 60 } | 62 } |
| OLD | NEW |