| Index: ui/base/ime/input_method_auralinux.h
|
| diff --git a/ui/base/ime/input_method_auralinux.h b/ui/base/ime/input_method_auralinux.h
|
| index 983feb9aff549d2813259f0d563413370d587fb9..de5c347be21bbe1cdb1f8273b1eb0c96d00d7ee2 100644
|
| --- a/ui/base/ime/input_method_auralinux.h
|
| +++ b/ui/base/ime/input_method_auralinux.h
|
| @@ -45,8 +45,36 @@ class InputMethodAuraLinux : public InputMethodBase,
|
| virtual void OnDidChangeFocusedClient(TextInputClient* focused_before,
|
| TextInputClient* focused) OVERRIDE;
|
|
|
| + private:
|
| + // Allows to fire a VKEY_PROCESSKEY key event.
|
| + void AllowToFireProcessKey(const ui::KeyEvent& event);
|
| + // Fires a VKEY_PROCESSKEY key event if allowed.
|
| + void MaybeFireProcessKey();
|
| + // Stops firing VKEY_PROCESSKEY key events.
|
| + void StopFiringProcessKey();
|
| +
|
| scoped_ptr<LinuxInputMethodContext> input_method_context_;
|
|
|
| + // IBus in async mode eagerly consumes all the key events first regardless of
|
| + // whether the underlying IME consumes the key event or not, and makes
|
| + // gtk_im_context_filter_keypress() always return true, and later pushes
|
| + // the key event back to the GDK event queue when it turns out that the
|
| + // underlying IME doesn't consume the key event.
|
| + //
|
| + // Thus we have to defer a decision whether or not to dispatch a
|
| + // VKEY_PROCESSKEY key event. Unlike other InputMethod's subclasses,
|
| + // DispatchKeyEvent() in this class does not directly dispatch a
|
| + // VKEY_PROCESSKEY event, OnCommit or OnPreedit{Start,Changed,End} dispatch
|
| + // a VKEY_PROCESSKEY event instead.
|
| + //
|
| + // Because of this hack, there could be chances that we accidentally dispatch
|
| + // VKEY_PROCESSKEY events and other key events in out of order.
|
| + //
|
| + // |allowed_to_fire_vkey_process_key_| is used not to dispatch a
|
| + // VKEY_PROCESSKEY event twice for a single key event.
|
| + bool allowed_to_fire_vkey_process_key_;
|
| + int vkey_processkey_flags_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(InputMethodAuraLinux);
|
| };
|
|
|
|
|