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