Index: content/renderer/render_widget.h |
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h |
index 804ec985b45c9390d1f3f9cc6b32e01f25f55bfc..ce9113d6b43aba00eea9944bf6d0d9a88424d876 100644 |
--- a/content/renderer/render_widget.h |
+++ b/content/renderer/render_widget.h |
@@ -83,6 +83,7 @@ namespace content { |
class CompositorDependencies; |
class ExternalPopupMenu; |
class FrameSwapMessageQueue; |
+class ImeEventGuard; |
class PepperPluginInstanceImpl; |
class RenderFrameImpl; |
class RenderFrameProxy; |
@@ -246,9 +247,9 @@ class CONTENT_EXPORT RenderWidget |
// |policy| see the comment on MessageDeliveryPolicy. |
void QueueMessage(IPC::Message* msg, MessageDeliveryPolicy policy); |
- // Handle common setup/teardown for handling IME events. |
- void StartHandlingImeEvent(); |
- void FinishHandlingImeEvent(); |
+ // Handle start and finish of IME event guard. |
+ void OnImeEventGuardStart(ImeEventGuard* guard); |
+ void OnImeEventGuardFinish(ImeEventGuard* guard); |
// Returns whether we currently should handle an IME event. |
bool ShouldHandleImeEvent(); |
@@ -663,8 +664,9 @@ class CONTENT_EXPORT RenderWidget |
// supporting overscroll IPC notifications due to fling animation updates. |
scoped_ptr<DidOverscrollParams>* handling_event_overscroll_; |
- // Are we currently handling an ime event? |
- bool handling_ime_event_; |
+ // It is possible that one ImeEventGuard is nested inside another |
+ // ImeEventGuard. We keep track of the outermost one, and update it as needed. |
+ ImeEventGuard* ime_event_guard_; |
// Type of the input event we are currently handling. |
blink::WebInputEvent::Type handling_event_type_; |