| 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 fbba625f8342b31b211b145df1f3dcbbbaa52642..c1076b6d218e81c36cc3ef4e684ffcbb7605f059 100644
|
| --- a/ui/base/ime/input_method_auralinux.h
|
| +++ b/ui/base/ime/input_method_auralinux.h
|
| @@ -6,6 +6,7 @@
|
| #define UI_BASE_IME_INPUT_METHOD_AURALINUX_H_
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "ui/base/ime/composition_text.h"
|
| #include "ui/base/ime/input_method_base.h"
|
| #include "ui/base/ime/linux/linux_input_method_context.h"
|
|
|
| @@ -21,6 +22,8 @@ class UI_BASE_IME_EXPORT InputMethodAuraLinux
|
| explicit InputMethodAuraLinux(internal::InputMethodDelegate* delegate);
|
| ~InputMethodAuraLinux() override;
|
|
|
| + LinuxInputMethodContext* GetContextForTesting(bool is_simple);
|
| +
|
| // Overriden from InputMethod.
|
| void Init(bool focused) override;
|
| bool OnUntranslatedIMEMessage(const base::NativeEvent& event,
|
| @@ -33,47 +36,51 @@ class UI_BASE_IME_EXPORT InputMethodAuraLinux
|
| std::string GetInputLocale() override;
|
| bool IsActive() override;
|
| bool IsCandidatePopupOpen() const override;
|
| + void OnFocus() override;
|
| + void OnBlur() override;
|
|
|
| // Overriden from ui::LinuxInputMethodContextDelegate
|
| void OnCommit(const base::string16& text) override;
|
| void OnPreeditChanged(const CompositionText& composition_text) override;
|
| void OnPreeditEnd() override;
|
| - void OnPreeditStart() override;
|
| + void OnPreeditStart() override{};
|
|
|
| protected:
|
| // Overridden from InputMethodBase.
|
| + void OnWillChangeFocusedClient(TextInputClient* focused_before,
|
| + TextInputClient* focused) override;
|
| 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_;
|
| + bool HasInputMethodResult();
|
| + bool NeedInsertChar() const;
|
| + void SendFakeProcessKeyEvent(int flags) const;
|
| + void ConfirmCompositionText();
|
| + void UpdateContextFocusState();
|
| + void ResetContext();
|
| +
|
| + scoped_ptr<LinuxInputMethodContext> context_;
|
| + scoped_ptr<LinuxInputMethodContext> context_simple_;
|
| +
|
| + base::string16 result_text_;
|
| +
|
| + ui::CompositionText composition_;
|
| +
|
| + // The current text input type used to indicates if |context_| and
|
| + // |context_simple_| are focused or not.
|
| + TextInputType text_input_type_;
|
| +
|
| + // Indicates if currently in sync mode when handling a key event.
|
| + // This is used in OnXXX callbacks from GTK IM module.
|
| + bool is_sync_mode_;
|
| +
|
| + // Indicates if the composition text is changed or deleted.
|
| + bool composition_changed_;
|
| +
|
| + // If it's true then all input method result received before the next key
|
| + // event will be discarded.
|
| + bool suppress_next_result_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(InputMethodAuraLinux);
|
| };
|
|
|