Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(344)

Side by Side Diff: content/renderer/render_widget.cc

Issue 2309983002: Allow selection change update before beginBatchEdit (Closed)
Patch Set: fixed a test failure Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/render_widget.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 opener_id_(MSG_ROUTING_NONE), 227 opener_id_(MSG_ROUTING_NONE),
228 next_paint_flags_(0), 228 next_paint_flags_(0),
229 auto_resize_mode_(false), 229 auto_resize_mode_(false),
230 need_update_rect_for_auto_resize_(false), 230 need_update_rect_for_auto_resize_(false),
231 did_show_(false), 231 did_show_(false),
232 is_hidden_(hidden), 232 is_hidden_(hidden),
233 compositor_never_visible_(never_visible), 233 compositor_never_visible_(never_visible),
234 is_fullscreen_granted_(false), 234 is_fullscreen_granted_(false),
235 display_mode_(blink::WebDisplayModeUndefined), 235 display_mode_(blink::WebDisplayModeUndefined),
236 ime_event_guard_(nullptr), 236 ime_event_guard_(nullptr),
237 ime_in_batch_edit_(false),
237 closing_(false), 238 closing_(false),
238 host_closing_(false), 239 host_closing_(false),
239 is_swapped_out_(swapped_out), 240 is_swapped_out_(swapped_out),
240 for_oopif_(false), 241 for_oopif_(false),
241 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT), 242 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT),
242 text_input_flags_(0), 243 text_input_flags_(0),
243 can_compose_inline_(true), 244 can_compose_inline_(true),
244 composition_range_(gfx::Range::InvalidRange()), 245 composition_range_(gfx::Range::InvalidRange()),
245 popup_type_(popup_type), 246 popup_type_(popup_type),
246 pending_window_rect_count_(0), 247 pending_window_rect_count_(0),
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects) 510 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects)
510 IPC_MESSAGE_HANDLER(ViewMsg_SetSurfaceClientId, OnSetSurfaceClientId) 511 IPC_MESSAGE_HANDLER(ViewMsg_SetSurfaceClientId, OnSetSurfaceClientId)
511 IPC_MESSAGE_HANDLER(ViewMsg_WaitForNextFrameForTests, 512 IPC_MESSAGE_HANDLER(ViewMsg_WaitForNextFrameForTests,
512 OnWaitNextFrameForTests) 513 OnWaitNextFrameForTests)
513 IPC_MESSAGE_HANDLER(InputMsg_RequestCompositionUpdate, 514 IPC_MESSAGE_HANDLER(InputMsg_RequestCompositionUpdate,
514 OnRequestCompositionUpdate) 515 OnRequestCompositionUpdate)
515 #if defined(OS_ANDROID) 516 #if defined(OS_ANDROID)
516 IPC_MESSAGE_HANDLER(InputMsg_ImeEventAck, OnImeEventAck) 517 IPC_MESSAGE_HANDLER(InputMsg_ImeEventAck, OnImeEventAck)
517 IPC_MESSAGE_HANDLER(InputMsg_RequestTextInputStateUpdate, 518 IPC_MESSAGE_HANDLER(InputMsg_RequestTextInputStateUpdate,
518 OnRequestTextInputStateUpdate) 519 OnRequestTextInputStateUpdate)
520 IPC_MESSAGE_HANDLER(InputMsg_ImeBatchEdit,
521 OnImeBatchEdit)
519 IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded) 522 IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded)
520 #endif 523 #endif
521 IPC_MESSAGE_HANDLER(ViewMsg_HandleCompositorProto, OnHandleCompositorProto) 524 IPC_MESSAGE_HANDLER(ViewMsg_HandleCompositorProto, OnHandleCompositorProto)
522 IPC_MESSAGE_UNHANDLED(handled = false) 525 IPC_MESSAGE_UNHANDLED(handled = false)
523 IPC_END_MESSAGE_MAP() 526 IPC_END_MESSAGE_MAP()
524 return handled; 527 return handled;
525 } 528 }
526 529
527 bool RenderWidget::Send(IPC::Message* message) { 530 bool RenderWidget::Send(IPC::Message* message) {
528 // Don't send any messages after the browser has told us to close, and filter 531 // Don't send any messages after the browser has told us to close, and filter
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 params.composition_start = new_info.compositionStart; 977 params.composition_start = new_info.compositionStart;
975 params.composition_end = new_info.compositionEnd; 978 params.composition_end = new_info.compositionEnd;
976 params.can_compose_inline = new_can_compose_inline; 979 params.can_compose_inline = new_can_compose_inline;
977 params.show_ime_if_needed = (show_ime == ShowIme::IF_NEEDED); 980 params.show_ime_if_needed = (show_ime == ShowIme::IF_NEEDED);
978 #if defined(USE_AURA) 981 #if defined(USE_AURA)
979 params.is_non_ime_change = true; 982 params.is_non_ime_change = true;
980 #endif 983 #endif
981 #if defined(OS_ANDROID) 984 #if defined(OS_ANDROID)
982 params.is_non_ime_change = 985 params.is_non_ime_change =
983 (change_source == ChangeSource::FROM_NON_IME) || text_field_is_dirty_; 986 (change_source == ChangeSource::FROM_NON_IME) || text_field_is_dirty_;
987 params.batch_edit = ime_in_batch_edit_;
984 if (params.is_non_ime_change) 988 if (params.is_non_ime_change)
985 OnImeEventSentForAck(new_info); 989 OnImeEventSentForAck(new_info);
986 text_field_is_dirty_ = false; 990 text_field_is_dirty_ = false;
987 #endif 991 #endif
988 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params)); 992 Send(new ViewHostMsg_TextInputStateChanged(routing_id(), params));
989 993
990 text_input_info_ = new_info; 994 text_input_info_ = new_info;
991 text_input_mode_ = new_mode; 995 text_input_mode_ = new_mode;
992 can_compose_inline_ = new_can_compose_inline; 996 can_compose_inline_ = new_can_compose_inline;
993 text_input_flags_ = new_info.flags; 997 text_input_flags_ = new_info.flags;
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
1608 void RenderWidget::OnImeEventAck() { 1612 void RenderWidget::OnImeEventAck() {
1609 DCHECK_GE(text_input_info_history_.size(), 1u); 1613 DCHECK_GE(text_input_info_history_.size(), 1u);
1610 text_input_info_history_.pop_front(); 1614 text_input_info_history_.pop_front();
1611 } 1615 }
1612 1616
1613 void RenderWidget::OnRequestTextInputStateUpdate() { 1617 void RenderWidget::OnRequestTextInputStateUpdate() {
1614 DCHECK(!ime_event_guard_); 1618 DCHECK(!ime_event_guard_);
1615 UpdateSelectionBounds(); 1619 UpdateSelectionBounds();
1616 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME); 1620 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME);
1617 } 1621 }
1622
1623 void RenderWidget::OnImeBatchEdit(bool begin) {
1624 if (begin) {
1625 ime_in_batch_edit_ = true;
1626 return;
1627 }
1628 if (!ime_in_batch_edit_)
1629 return;
1630 ime_in_batch_edit_ = false;
1631 DCHECK(!ime_event_guard_);
1632 UpdateSelectionBounds();
1633 UpdateTextInputState(ShowIme::HIDE_IME, ChangeSource::FROM_IME);
1634 }
1618 #endif 1635 #endif
1619 1636
1620 void RenderWidget::OnRequestCompositionUpdate(bool immediate_request, 1637 void RenderWidget::OnRequestCompositionUpdate(bool immediate_request,
1621 bool monitor_request) { 1638 bool monitor_request) {
1622 monitor_composition_info_ = monitor_request; 1639 monitor_composition_info_ = monitor_request;
1623 if (!immediate_request) 1640 if (!immediate_request)
1624 return; 1641 return;
1625 UpdateCompositionInfo(true /* immediate request */); 1642 UpdateCompositionInfo(true /* immediate request */);
1626 } 1643 }
1627 1644
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
2151 bool RenderWidget::isPointerLocked() { 2168 bool RenderWidget::isPointerLocked() {
2152 return mouse_lock_dispatcher_->IsMouseLockedTo( 2169 return mouse_lock_dispatcher_->IsMouseLockedTo(
2153 webwidget_mouse_lock_target_.get()); 2170 webwidget_mouse_lock_target_.get());
2154 } 2171 }
2155 2172
2156 blink::WebWidget* RenderWidget::GetWebWidget() const { 2173 blink::WebWidget* RenderWidget::GetWebWidget() const {
2157 return webwidget_internal_; 2174 return webwidget_internal_;
2158 } 2175 }
2159 2176
2160 } // namespace content 2177 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_widget.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698