blob: f941ab258e2fc9306a05439e2df56303fa563a8f [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
#define MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
#include "ui/base/ime/input_method_auralinux.h"
#include "ui/base/ime/input_method_delegate.h"
namespace mojo {
// An input method for linux that does absolutely no translation.
//
// The current InputMethodMinimal makes assumptions that a system will only
// input/output keydown/keyup events; it assumes that things don't work like
// Windows does. When it gets a keydown event, it then tries to insert a
// character at the same time.
//
// However, we're standardizing on Windows' WM_CHAR style events. This tries to
// follow InputMethodWin::DispatchKeyEvent() instead, because PlatformViewX11
// now synthesizes a character events so that we have one behaviour across our
// platforms.
class InputMethodMojoLinux : public ui::InputMethodAuraLinux {
public:
explicit InputMethodMojoLinux(ui::internal::InputMethodDelegate* delegate);
virtual ~InputMethodMojoLinux();
// Overriden from ui::InputMethodAuraLinux:
virtual bool DispatchKeyEvent(const ui::KeyEvent& event) override;
private:
DISALLOW_COPY_AND_ASSIGN(InputMethodMojoLinux);
};
} // namespace mojo
#endif // MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_