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 #include "chrome/browser/renderer_host/render_widget_host_view_win.h" | 5 #include "chrome/browser/renderer_host/render_widget_host_view_win.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 case WM_MBUTTONDOWN: | 202 case WM_MBUTTONDOWN: |
203 ::SendMessage(GetParent(window), message, wparam, lparam); | 203 ::SendMessage(GetParent(window), message, wparam, lparam); |
204 return 0; | 204 return 0; |
205 default: | 205 default: |
206 break; | 206 break; |
207 } | 207 } |
208 } | 208 } |
209 return ::DefWindowProc(window, message, wparam, lparam); | 209 return ::DefWindowProc(window, message, wparam, lparam); |
210 } | 210 } |
211 | 211 |
| 212 bool ShouldEnableIME(ui::TextInputType type) { |
| 213 return type != ui::TEXT_INPUT_TYPE_NONE && |
| 214 type != ui::TEXT_INPUT_TYPE_PASSWORD; |
| 215 } |
| 216 |
212 } // namespace | 217 } // namespace |
213 | 218 |
214 // RenderWidgetHostView -------------------------------------------------------- | 219 // RenderWidgetHostView -------------------------------------------------------- |
215 | 220 |
216 // static | 221 // static |
217 RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget( | 222 RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget( |
218 RenderWidgetHost* widget) { | 223 RenderWidgetHost* widget) { |
219 if (views::Widget::IsPureViews()) | 224 if (views::Widget::IsPureViews()) |
220 return new RenderWidgetHostViewViews(widget); | 225 return new RenderWidgetHostViewViews(widget); |
221 return new RenderWidgetHostViewWin(widget); | 226 return new RenderWidgetHostViewWin(widget); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 } | 285 } |
281 | 286 |
282 void RenderWidgetHostViewWin::DidBecomeSelected() { | 287 void RenderWidgetHostViewWin::DidBecomeSelected() { |
283 if (!is_hidden_) | 288 if (!is_hidden_) |
284 return; | 289 return; |
285 | 290 |
286 if (tab_switch_paint_time_.is_null()) | 291 if (tab_switch_paint_time_.is_null()) |
287 tab_switch_paint_time_ = TimeTicks::Now(); | 292 tab_switch_paint_time_ = TimeTicks::Now(); |
288 is_hidden_ = false; | 293 is_hidden_ = false; |
289 EnsureTooltip(); | 294 EnsureTooltip(); |
| 295 if (ShouldEnableIME(text_input_type_)) |
| 296 ime_input_.EnableIME(m_hWnd); |
| 297 else |
| 298 ime_input_.DisableIME(m_hWnd); |
290 render_widget_host_->WasRestored(); | 299 render_widget_host_->WasRestored(); |
291 } | 300 } |
292 | 301 |
293 void RenderWidgetHostViewWin::WasHidden() { | 302 void RenderWidgetHostViewWin::WasHidden() { |
294 if (is_hidden_) | 303 if (is_hidden_) |
295 return; | 304 return; |
296 | 305 |
297 // If we receive any more paint messages while we are hidden, we want to | 306 // If we receive any more paint messages while we are hidden, we want to |
298 // ignore them so we don't re-allocate the backing store. We will paint | 307 // ignore them so we don't re-allocate the backing store. We will paint |
299 // everything again when we become selected again. | 308 // everything again when we become selected again. |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
591 } | 600 } |
592 | 601 |
593 void RenderWidgetHostViewWin::ImeUpdateTextInputState( | 602 void RenderWidgetHostViewWin::ImeUpdateTextInputState( |
594 ui::TextInputType type, | 603 ui::TextInputType type, |
595 bool can_compose_inline, | 604 bool can_compose_inline, |
596 const gfx::Rect& caret_rect) { | 605 const gfx::Rect& caret_rect) { |
597 // TODO(kinaba): currently, can_compose_inline is ignored and always treated | 606 // TODO(kinaba): currently, can_compose_inline is ignored and always treated |
598 // as true. We need to support "can_compose_inline=false" for PPAPI plugins | 607 // as true. We need to support "can_compose_inline=false" for PPAPI plugins |
599 // that may want to avoid drawing composition-text by themselves and pass | 608 // that may want to avoid drawing composition-text by themselves and pass |
600 // the responsibility to the browser. | 609 // the responsibility to the browser. |
601 bool is_enabled = (type != ui::TEXT_INPUT_TYPE_NONE && | 610 bool is_enabled = ShouldEnableIME(type); |
602 type != ui::TEXT_INPUT_TYPE_PASSWORD); | |
603 if (text_input_type_ != type) { | 611 if (text_input_type_ != type) { |
604 text_input_type_ = type; | 612 text_input_type_ = type; |
605 if (is_enabled) | 613 if (is_enabled) |
606 ime_input_.EnableIME(m_hWnd); | 614 ime_input_.EnableIME(m_hWnd); |
607 else | 615 else |
608 ime_input_.DisableIME(m_hWnd); | 616 ime_input_.DisableIME(m_hWnd); |
609 } | 617 } |
610 | 618 |
611 // Only update caret position if the input method is enabled. | 619 // Only update caret position if the input method is enabled. |
612 if (is_enabled) | 620 if (is_enabled) |
(...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1827 DWORD ex_style) { | 1835 DWORD ex_style) { |
1828 parent_hwnd_ = parent_hwnd; | 1836 parent_hwnd_ = parent_hwnd; |
1829 Create(parent_hwnd_, NULL, NULL, WS_POPUP, ex_style); | 1837 Create(parent_hwnd_, NULL, NULL, WS_POPUP, ex_style); |
1830 MoveWindow(pos.x(), pos.y(), pos.width(), pos.height(), TRUE); | 1838 MoveWindow(pos.x(), pos.y(), pos.width(), pos.height(), TRUE); |
1831 // To show tooltip on popup window.(e.g. title in <select>) | 1839 // To show tooltip on popup window.(e.g. title in <select>) |
1832 // Popups default to showing, which means |DidBecomeSelected()| isn't invoked. | 1840 // Popups default to showing, which means |DidBecomeSelected()| isn't invoked. |
1833 // Ensure the tooltip is created otherwise tooltips are never shown. | 1841 // Ensure the tooltip is created otherwise tooltips are never shown. |
1834 EnsureTooltip(); | 1842 EnsureTooltip(); |
1835 ShowWindow(IsActivatable() ? SW_SHOW : SW_SHOWNA); | 1843 ShowWindow(IsActivatable() ? SW_SHOW : SW_SHOWNA); |
1836 } | 1844 } |
OLD | NEW |