Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 229 opener_id_(MSG_ROUTING_NONE), | 229 opener_id_(MSG_ROUTING_NONE), |
| 230 next_paint_flags_(0), | 230 next_paint_flags_(0), |
| 231 auto_resize_mode_(false), | 231 auto_resize_mode_(false), |
| 232 need_update_rect_for_auto_resize_(false), | 232 need_update_rect_for_auto_resize_(false), |
| 233 did_show_(false), | 233 did_show_(false), |
| 234 is_hidden_(hidden), | 234 is_hidden_(hidden), |
| 235 compositor_never_visible_(never_visible), | 235 compositor_never_visible_(never_visible), |
| 236 is_fullscreen_granted_(false), | 236 is_fullscreen_granted_(false), |
| 237 display_mode_(blink::WebDisplayModeUndefined), | 237 display_mode_(blink::WebDisplayModeUndefined), |
| 238 ime_event_guard_(nullptr), | 238 ime_event_guard_(nullptr), |
| 239 ime_in_batch_edit_(false), | |
| 239 closing_(false), | 240 closing_(false), |
| 240 host_closing_(false), | 241 host_closing_(false), |
| 241 is_swapped_out_(swapped_out), | 242 is_swapped_out_(swapped_out), |
| 242 for_oopif_(false), | 243 for_oopif_(false), |
| 243 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT), | 244 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT), |
| 244 text_input_flags_(0), | 245 text_input_flags_(0), |
| 245 can_compose_inline_(true), | 246 can_compose_inline_(true), |
| 246 composition_range_(gfx::Range::InvalidRange()), | 247 composition_range_(gfx::Range::InvalidRange()), |
| 247 popup_type_(popup_type), | 248 popup_type_(popup_type), |
| 248 pending_window_rect_count_(0), | 249 pending_window_rect_count_(0), |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 506 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects) | 507 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects) |
| 507 IPC_MESSAGE_HANDLER(ViewMsg_SetSurfaceClientId, OnSetSurfaceClientId) | 508 IPC_MESSAGE_HANDLER(ViewMsg_SetSurfaceClientId, OnSetSurfaceClientId) |
| 508 IPC_MESSAGE_HANDLER(ViewMsg_WaitForNextFrameForTests, | 509 IPC_MESSAGE_HANDLER(ViewMsg_WaitForNextFrameForTests, |
| 509 OnWaitNextFrameForTests) | 510 OnWaitNextFrameForTests) |
| 510 IPC_MESSAGE_HANDLER(InputMsg_RequestCompositionUpdate, | 511 IPC_MESSAGE_HANDLER(InputMsg_RequestCompositionUpdate, |
| 511 OnRequestCompositionUpdate) | 512 OnRequestCompositionUpdate) |
| 512 #if defined(OS_ANDROID) | 513 #if defined(OS_ANDROID) |
| 513 IPC_MESSAGE_HANDLER(InputMsg_ImeEventAck, OnImeEventAck) | 514 IPC_MESSAGE_HANDLER(InputMsg_ImeEventAck, OnImeEventAck) |
| 514 IPC_MESSAGE_HANDLER(InputMsg_RequestTextInputStateUpdate, | 515 IPC_MESSAGE_HANDLER(InputMsg_RequestTextInputStateUpdate, |
| 515 OnRequestTextInputStateUpdate) | 516 OnRequestTextInputStateUpdate) |
| 517 IPC_MESSAGE_HANDLER(InputMsg_ImeBatchEdit, | |
| 518 OnImeBatchEdit) | |
| 516 IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded) | 519 IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded) |
| 517 #endif | 520 #endif |
| 518 IPC_MESSAGE_HANDLER(ViewMsg_HandleCompositorProto, OnHandleCompositorProto) | 521 IPC_MESSAGE_HANDLER(ViewMsg_HandleCompositorProto, OnHandleCompositorProto) |
| 519 IPC_MESSAGE_UNHANDLED(handled = false) | 522 IPC_MESSAGE_UNHANDLED(handled = false) |
| 520 IPC_END_MESSAGE_MAP() | 523 IPC_END_MESSAGE_MAP() |
| 521 return handled; | 524 return handled; |
| 522 } | 525 } |
| 523 | 526 |
| 524 bool RenderWidget::Send(IPC::Message* message) { | 527 bool RenderWidget::Send(IPC::Message* message) { |
| 525 // Don't send any messages after the browser has told us to close, and filter | 528 // Don't send any messages after the browser has told us to close, and filter |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 962 params.composition_start = new_info.compositionStart; | 965 params.composition_start = new_info.compositionStart; |
| 963 params.composition_end = new_info.compositionEnd; | 966 params.composition_end = new_info.compositionEnd; |
| 964 params.can_compose_inline = new_can_compose_inline; | 967 params.can_compose_inline = new_can_compose_inline; |
| 965 params.show_ime_if_needed = (show_ime == ShowIme::IF_NEEDED); | 968 params.show_ime_if_needed = (show_ime == ShowIme::IF_NEEDED); |
| 966 #if defined(USE_AURA) | 969 #if defined(USE_AURA) |
| 967 params.is_non_ime_change = true; | 970 params.is_non_ime_change = true; |
| 968 #endif | 971 #endif |
| 969 #if defined(OS_ANDROID) | 972 #if defined(OS_ANDROID) |
| 970 params.is_non_ime_change = | 973 params.is_non_ime_change = |
| 971 (change_source == ChangeSource::FROM_NON_IME) || text_field_is_dirty_; | 974 (change_source == ChangeSource::FROM_NON_IME) || text_field_is_dirty_; |
| 975 params.batch_edit = ime_in_batch_edit_; | |
| 972 if (params.is_non_ime_change) | 976 if (params.is_non_ime_change) |
| 973 OnImeEventSentForAck(new_info); | 977 OnImeEventSentForAck(new_info); |
| 974 text_field_is_dirty_ = false; | 978 text_field_is_dirty_ = false; |
| 975 #endif | 979 #endif |
| 976 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params)); | 980 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params)); |
| 977 | 981 |
| 978 text_input_info_ = new_info; | 982 text_input_info_ = new_info; |
| 979 text_input_mode_ = new_mode; | 983 text_input_mode_ = new_mode; |
| 980 can_compose_inline_ = new_can_compose_inline; | 984 can_compose_inline_ = new_can_compose_inline; |
| 981 text_input_flags_ = new_info.flags; | 985 text_input_flags_ = new_info.flags; |
| (...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1579 void RenderWidget::OnImeEventAck() { | 1583 void RenderWidget::OnImeEventAck() { |
| 1580 DCHECK_GE(text_input_info_history_.size(), 1u); | 1584 DCHECK_GE(text_input_info_history_.size(), 1u); |
| 1581 text_input_info_history_.pop_front(); | 1585 text_input_info_history_.pop_front(); |
| 1582 } | 1586 } |
| 1583 | 1587 |
| 1584 void RenderWidget::OnRequestTextInputStateUpdate() { | 1588 void RenderWidget::OnRequestTextInputStateUpdate() { |
| 1585 DCHECK(!ime_event_guard_); | 1589 DCHECK(!ime_event_guard_); |
| 1586 UpdateSelectionBounds(); | 1590 UpdateSelectionBounds(); |
| 1587 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME); | 1591 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME); |
| 1588 } | 1592 } |
| 1593 | |
| 1594 void RenderWidget::OnImeBatchEdit(bool begin) { | |
|
aelias_OOO_until_Jul13
2016/09/13 02:26:51
Please add in a call to RenderWidgetCompositor::se
Changwan Ryu
2016/09/19 01:51:27
Hmm... Let me try it on another CL (which depends
aelias_OOO_until_Jul13
2016/09/19 19:29:27
Sounds good.
| |
| 1595 if (begin) { | |
| 1596 ime_in_batch_edit_ = true; | |
| 1597 return; | |
| 1598 } | |
| 1599 if (!ime_in_batch_edit_) | |
| 1600 return; | |
| 1601 ime_in_batch_edit_ = false; | |
| 1602 DCHECK(!ime_event_guard_); | |
| 1603 UpdateSelectionBounds(); | |
| 1604 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME); | |
| 1605 } | |
| 1589 #endif | 1606 #endif |
| 1590 | 1607 |
| 1591 void RenderWidget::OnRequestCompositionUpdate(bool immediate_request, | 1608 void RenderWidget::OnRequestCompositionUpdate(bool immediate_request, |
| 1592 bool monitor_request) { | 1609 bool monitor_request) { |
| 1593 monitor_composition_info_ = monitor_request; | 1610 monitor_composition_info_ = monitor_request; |
| 1594 if (!immediate_request) | 1611 if (!immediate_request) |
| 1595 return; | 1612 return; |
| 1596 UpdateCompositionInfo(true /* immediate request */); | 1613 UpdateCompositionInfo(true /* immediate request */); |
| 1597 } | 1614 } |
| 1598 | 1615 |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2087 void RenderWidget::requestPointerUnlock() { | 2104 void RenderWidget::requestPointerUnlock() { |
| 2088 mouse_lock_dispatcher_->UnlockMouse(webwidget_mouse_lock_target_.get()); | 2105 mouse_lock_dispatcher_->UnlockMouse(webwidget_mouse_lock_target_.get()); |
| 2089 } | 2106 } |
| 2090 | 2107 |
| 2091 bool RenderWidget::isPointerLocked() { | 2108 bool RenderWidget::isPointerLocked() { |
| 2092 return mouse_lock_dispatcher_->IsMouseLockedTo( | 2109 return mouse_lock_dispatcher_->IsMouseLockedTo( |
| 2093 webwidget_mouse_lock_target_.get()); | 2110 webwidget_mouse_lock_target_.get()); |
| 2094 } | 2111 } |
| 2095 | 2112 |
| 2096 } // namespace content | 2113 } // namespace content |
| OLD | NEW |