// 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_
