1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
6#define MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
7
8#include "ui/base/ime/input_method_auralinux.h"
9#include "ui/base/ime/input_method_delegate.h"
10
11namespace mojo {
12
13// An input method for linux that does absolutely no translation.
14//
15// The current InputMethodMinimal makes assumptions that a system will only
16// input/output keydown/keyup events; it assumes that things don't work like
17// Windows does. When it gets a keydown event, it then tries to insert a
18// character at the same time.
19//
20// However, we're standardizing on Windows' WM_CHAR style events. This tries to
21// follow InputMethodWin::DispatchKeyEvent() instead, because PlatformViewX11
22// now synthesizes a character events so that we have one behaviour across our
23// platforms.
24class InputMethodMojoLinux : public ui::InputMethodAuraLinux {
25 public:
26  explicit InputMethodMojoLinux(ui::internal::InputMethodDelegate* delegate);
27  virtual ~InputMethodMojoLinux();
28
29  // Overriden from ui::InputMethodAuraLinux:
30  virtual bool DispatchKeyEvent(const ui::KeyEvent& event) OVERRIDE;
31
32 private:
33  DISALLOW_COPY_AND_ASSIGN(InputMethodMojoLinux);
34};
35
36}  // namespace mojo
37
38#endif  // MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
39