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..ffbe813fb8ce72bcbf7fefc8eeea5ab16aa4fcd8 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,6 +36,8 @@ 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; |
@@ -42,38 +47,43 @@ class UI_BASE_IME_EXPORT InputMethodAuraLinux |
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(); |
+ void ProcessInputMethodResult(const KeyEvent& key, bool filtered); |
+ bool NeedInsertChar() const; |
+ void SendFakeProcessKeyEvent(bool pressed) 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 we are handling a key event. |
+ bool handling_key_event_; |
+ |
+ // Indicates if there is an ongoing composition text. |
+ bool composing_text_; |
+ |
+ // 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); |
}; |