#include "ui/base/ime/linux/input_method_auralinux.h"
#include "base/auto_reset.h"
#include "base/environment.h"
#include "base/functional/bind.h"
#include "base/strings/utf_offset_string_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "build/chromeos_buildflags.h"
#include "ui/base/ime/constants.h"
#include "ui/base/ime/linux/linux_input_method_context_factory.h"
#include "ui/base/ime/text_input_client.h"
#include "ui/base/ime/text_input_flags.h"
#include "ui/events/event.h"
namespace {
constexpr base::TimeDelta kIgnoreCommitsDuration = …;
bool IsEventFromVK(const ui::KeyEvent& event) { … }
bool IsSameKeyEvent(const ui::KeyEvent& lhs, const ui::KeyEvent& rhs) { … }
}
namespace ui {
InputMethodAuraLinux::InputMethodAuraLinux(
ImeKeyEventDispatcher* ime_key_event_dispatcher)
: … { … }
InputMethodAuraLinux::~InputMethodAuraLinux() = default;
LinuxInputMethodContext* InputMethodAuraLinux::GetContextForTesting() { … }
ui::EventDispatchDetails InputMethodAuraLinux::DispatchKeyEvent(
ui::KeyEvent* event) { … }
ui::EventDispatchDetails InputMethodAuraLinux::DispatchImeFilteredKeyPressEvent(
ui::KeyEvent* event) { … }
InputMethodAuraLinux::CommitResult InputMethodAuraLinux::MaybeCommitResult(
bool filtered,
const KeyEvent& event) { … }
bool InputMethodAuraLinux::UpdateCompositionIfTextSelected() { … }
bool InputMethodAuraLinux::UpdateCompositionIfChanged(bool text_committed) { … }
void InputMethodAuraLinux::UpdateContextFocusState() { … }
void InputMethodAuraLinux::OnTextInputTypeChanged(TextInputClient* client) { … }
void InputMethodAuraLinux::OnCaretBoundsChanged(const TextInputClient* client) { … }
void InputMethodAuraLinux::CancelComposition(const TextInputClient* client) { … }
void InputMethodAuraLinux::ResetContext() { … }
bool InputMethodAuraLinux::IgnoringNonKeyInput() const { … }
bool InputMethodAuraLinux::IsCandidatePopupOpen() const { … }
VirtualKeyboardController*
InputMethodAuraLinux::GetVirtualKeyboardController() { … }
void InputMethodAuraLinux::OnCommit(const std::u16string& text) { … }
void InputMethodAuraLinux::OnInsertImage(const GURL& src) { … }
void InputMethodAuraLinux::OnConfirmCompositionText(bool keep_selection) { … }
void InputMethodAuraLinux::OnDeleteSurroundingText(size_t before,
size_t after) { … }
void InputMethodAuraLinux::OnPreeditChanged(
const CompositionText& composition_text) { … }
void InputMethodAuraLinux::OnPreeditEnd() { … }
void InputMethodAuraLinux::OnSetPreeditRegion(
const gfx::Range& range,
const std::vector<ImeTextSpan>& spans) { … }
void InputMethodAuraLinux::OnClearGrammarFragments(const gfx::Range& range) { … }
void InputMethodAuraLinux::OnAddGrammarFragment(
const ui::GrammarFragment& fragment) { … }
void InputMethodAuraLinux::OnSetAutocorrectRange(const gfx::Range& range) { … }
void InputMethodAuraLinux::OnSetVirtualKeyboardOccludedBounds(
const gfx::Rect& screen_bounds) { … }
void InputMethodAuraLinux::OnWillChangeFocusedClient(
TextInputClient* focused_before,
TextInputClient* focused) { … }
void InputMethodAuraLinux::OnDidChangeFocusedClient(
TextInputClient* focused_before,
TextInputClient* focused) { … }
void InputMethodAuraLinux::OnPreeditUpdate(
const ui::CompositionText& composition_text,
bool force_update_client) { … }
bool InputMethodAuraLinux::HasInputMethodResult() { … }
bool InputMethodAuraLinux::NeedInsertChar(
const std::optional<std::u16string>& result_text) const { … }
ui::EventDispatchDetails InputMethodAuraLinux::SendFakeProcessKeyEvent(
ui::KeyEvent* event) const { … }
void InputMethodAuraLinux::ConfirmCompositionText(bool keep_selection) { … }
}