summaryrefslogtreecommitdiffstats
path: root/ui/base
diff options
context:
space:
mode:
authorkomatsu@chromium.org <komatsu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-28 21:29:20 +0000
committerkomatsu@chromium.org <komatsu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-28 21:29:20 +0000
commit27f9b621d913eaad5850b749ecd27dca6800cd6b (patch)
treec3ba9733ba3703f3d7c65a69e4ab306a8fe73969 /ui/base
parent6c31f3e63d79c7edbdcfdf2412d2e939aed8334d (diff)
downloadchromium_src-27f9b621d913eaad5850b749ecd27dca6800cd6b.zip
chromium_src-27f9b621d913eaad5850b749ecd27dca6800cd6b.tar.gz
chromium_src-27f9b621d913eaad5850b749ecd27dca6800cd6b.tar.bz2
Use ui::KeyEvent for ProcessKeyEvent.
This patch stops using IBus specific key events, but use the common ui::KeyEvent class. This will enable to merge handlers of native events and fabricated events. BUG=312218 Review URL: https://codereview.chromium.org/88313002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237838 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base')
-rw-r--r--ui/base/ime/chromeos/ibus_bridge.h14
-rw-r--r--ui/base/ime/chromeos/mock_ime_engine_handler.cc13
-rw-r--r--ui/base/ime/chromeos/mock_ime_engine_handler.h19
-rw-r--r--ui/base/ime/input_method_ibus.cc4
-rw-r--r--ui/base/ime/input_method_ibus_unittest.cc51
5 files changed, 36 insertions, 65 deletions
diff --git a/ui/base/ime/chromeos/ibus_bridge.h b/ui/base/ime/chromeos/ibus_bridge.h
index 7a53253..e0e506b 100644
--- a/ui/base/ime/chromeos/ibus_bridge.h
+++ b/ui/base/ime/chromeos/ibus_bridge.h
@@ -17,6 +17,10 @@ namespace gfx {
class Rect;
} // namespace gfx
+namespace ui {
+class KeyEvent;
+} // namespace ui
+
namespace chromeos {
namespace ibus {
// Following button indicator value is introduced from
@@ -91,15 +95,9 @@ class UI_EXPORT IBusEngineHandlerInterface {
// Called when the IME is reset.
virtual void Reset() = 0;
- // Called when the key event is received. The |keycode| is raw layout
- // independent keycode. The |keysym| is result of XLookupString function
- // which translate |keycode| to keyboard layout dependent symbol value.
+ // Called when the key event is received.
// Actual implementation must call |callback| after key event handling.
- // For example: key press event for 'd' key on us layout and dvorak layout.
- // keyval keycode state
- // us layout : 0x64 0x20 0x00
- // dvorak layout : 0x65 0x20 0x00
- virtual void ProcessKeyEvent(uint32 keysym, uint32 keycode, uint32 state,
+ virtual void ProcessKeyEvent(const ui::KeyEvent& key_event,
const KeyEventDoneCallback& callback) = 0;
// Called when the candidate in lookup table is clicked. The |index| is 0
diff --git a/ui/base/ime/chromeos/mock_ime_engine_handler.cc b/ui/base/ime/chromeos/mock_ime_engine_handler.cc
index d7e664f..239e583c0 100644
--- a/ui/base/ime/chromeos/mock_ime_engine_handler.cc
+++ b/ui/base/ime/chromeos/mock_ime_engine_handler.cc
@@ -15,10 +15,7 @@ MockIMEEngineHandler::MockIMEEngineHandler()
last_text_input_context_(ui::TEXT_INPUT_TYPE_NONE,
ui::TEXT_INPUT_MODE_DEFAULT),
last_set_surrounding_cursor_pos_(0),
- last_set_surrounding_anchor_pos_(0),
- last_processed_keysym_(0),
- last_processed_keycode_(0),
- last_processed_state_(0) {
+ last_set_surrounding_anchor_pos_(0) {
}
MockIMEEngineHandler::~MockIMEEngineHandler() {
@@ -48,14 +45,10 @@ void MockIMEEngineHandler::Reset() {
}
void MockIMEEngineHandler::ProcessKeyEvent(
- uint32 keysym,
- uint32 keycode,
- uint32 state,
+ const ui::KeyEvent& key_event,
const KeyEventDoneCallback& callback) {
++process_key_event_call_count_;
- last_processed_keysym_ = keysym;
- last_processed_keycode_ = keycode;
- last_processed_state_ = state;
+ last_processed_key_event_.reset(key_event.Copy());
last_passed_callback_ = callback;
}
diff --git a/ui/base/ime/chromeos/mock_ime_engine_handler.h b/ui/base/ime/chromeos/mock_ime_engine_handler.h
index 56fc259..2e77dca 100644
--- a/ui/base/ime/chromeos/mock_ime_engine_handler.h
+++ b/ui/base/ime/chromeos/mock_ime_engine_handler.h
@@ -7,6 +7,7 @@
#include "ui/base/ime/chromeos/ibus_bridge.h"
#include "ui/base/ui_export.h"
+#include "ui/events/event.h"
namespace chromeos {
@@ -21,7 +22,7 @@ class UI_EXPORT MockIMEEngineHandler : public IBusEngineHandlerInterface {
virtual void Disable() OVERRIDE;
virtual void PropertyActivate(const std::string& property_name) OVERRIDE;
virtual void Reset() OVERRIDE;
- virtual void ProcessKeyEvent(uint32 keysym, uint32 keycode, uint32 state,
+ virtual void ProcessKeyEvent(const ui::KeyEvent& key_event,
const KeyEventDoneCallback& callback) OVERRIDE;
virtual void CandidateClicked(uint32 index, ibus::IBusMouseButton button,
uint32 state) OVERRIDE;
@@ -58,16 +59,8 @@ class UI_EXPORT MockIMEEngineHandler : public IBusEngineHandlerInterface {
return last_set_surrounding_anchor_pos_;
}
- uint32 last_processed_keysym() const {
- return last_processed_keysym_;
- }
-
- uint32 last_processed_keycode() const {
- return last_processed_keycode_;
- }
-
- uint32 last_processed_state() const {
- return last_processed_state_;
+ const ui::KeyEvent* last_processed_key_event() const {
+ return last_processed_key_event_.get();
}
const KeyEventDoneCallback& last_passed_callback() const {
@@ -85,9 +78,7 @@ class UI_EXPORT MockIMEEngineHandler : public IBusEngineHandlerInterface {
std::string last_set_surrounding_text_;
uint32 last_set_surrounding_cursor_pos_;
uint32 last_set_surrounding_anchor_pos_;
- uint32 last_processed_keysym_;
- uint32 last_processed_keycode_;
- uint32 last_processed_state_;
+ scoped_ptr<ui::KeyEvent> last_processed_key_event_;
KeyEventDoneCallback last_passed_callback_;
};
diff --git a/ui/base/ime/input_method_ibus.cc b/ui/base/ime/input_method_ibus.cc
index 28e7d7e..7ae75fb 100644
--- a/ui/base/ime/input_method_ibus.cc
+++ b/ui/base/ime/input_method_ibus.cc
@@ -189,9 +189,7 @@ bool InputMethodIBus::DispatchKeyEvent(const ui::KeyEvent& event) {
ui::KeyEvent* copied_event = event.Copy();
GetEngine()->ProcessKeyEvent(
- ibus_keyval,
- ibus_keycode,
- ibus_state,
+ event,
base::Bind(&InputMethodIBus::ProcessKeyEventDone,
weak_ptr_factory_.GetWeakPtr(),
current_keyevent_id_,
diff --git a/ui/base/ime/input_method_ibus_unittest.cc b/ui/base/ime/input_method_ibus_unittest.cc
index c851211..aa0ea2c 100644
--- a/ui/base/ime/input_method_ibus_unittest.cc
+++ b/ui/base/ime/input_method_ibus_unittest.cc
@@ -923,10 +923,9 @@ class InputMethodIBusKeyEventTest : public InputMethodIBusTest {
};
TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseTest) {
- const int kXFlags = ShiftMask;
- const unsigned int kIbusFlags = ui::EF_SHIFT_DOWN;
+ const int kFlags = ui::EF_SHIFT_DOWN;
ScopedXI2Event xevent;
- xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, kXFlags);
+ xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, kFlags);
const ui::KeyEvent event(xevent, true);
// Do key event.
@@ -935,14 +934,12 @@ TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseTest) {
ime_->DispatchKeyEvent(event);
// Check before state.
+ const ui::KeyEvent* key_event =
+ mock_ime_engine_handler_->last_processed_key_event();
EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
- EXPECT_EQ("A",
- chromeos::input_method::GetIBusKey(
- mock_ime_engine_handler_->last_processed_keysym()));
- EXPECT_EQ("KeyA",
- chromeos::input_method::GetIBusKeyCode(
- mock_ime_engine_handler_->last_processed_keycode()));
- EXPECT_EQ(kIbusFlags, mock_ime_engine_handler_->last_processed_state());
+ EXPECT_EQ(ui::VKEY_A, key_event->key_code());
+ EXPECT_EQ("KeyA", key_event->code());
+ EXPECT_EQ(kFlags, key_event->flags());
EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
// Do callback.
@@ -962,38 +959,33 @@ TEST_F(InputMethodIBusKeyEventTest, MultiKeyEventDelayResponseTest) {
input_type_ = TEXT_INPUT_TYPE_TEXT;
ime_->OnTextInputTypeChanged(this);
- const int kXFlags = ShiftMask;
- const unsigned int kIbusFlags = ui::EF_SHIFT_DOWN;
+ const int kFlags = ui::EF_SHIFT_DOWN;
ScopedXI2Event xevent;
- xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_B, kXFlags);
+ xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_B, kFlags);
const ui::KeyEvent event(xevent, true);
// Do key event.
ime_->DispatchKeyEvent(event);
- EXPECT_EQ("B",
- chromeos::input_method::GetIBusKey(
- mock_ime_engine_handler_->last_processed_keysym()));
- EXPECT_EQ("KeyB",
- chromeos::input_method::GetIBusKeyCode(
- mock_ime_engine_handler_->last_processed_keycode()));
- EXPECT_EQ(kIbusFlags, mock_ime_engine_handler_->last_processed_state());
+ const ui::KeyEvent* key_event =
+ mock_ime_engine_handler_->last_processed_key_event();
+ EXPECT_EQ(ui::VKEY_B, key_event->key_code());
+ EXPECT_EQ("KeyB", key_event->code());
+ EXPECT_EQ(kFlags, key_event->flags());
KeyEventCallback first_callback =
mock_ime_engine_handler_->last_passed_callback();
// Do key event again.
ScopedXI2Event xevent2;
- xevent2.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_C, kXFlags);
+ xevent2.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_C, kFlags);
const ui::KeyEvent event2(xevent2, true);
ime_->DispatchKeyEvent(event2);
- EXPECT_EQ("C",
- chromeos::input_method::GetIBusKey(
- mock_ime_engine_handler_->last_processed_keysym()));
- EXPECT_EQ("KeyC",
- chromeos::input_method::GetIBusKeyCode(
- mock_ime_engine_handler_->last_processed_keycode()));
- EXPECT_EQ(kIbusFlags, mock_ime_engine_handler_->last_processed_state());
+ const ui::KeyEvent* key_event2 =
+ mock_ime_engine_handler_->last_processed_key_event();
+ EXPECT_EQ(ui::VKEY_C, key_event2->key_code());
+ EXPECT_EQ("KeyC", key_event2->code());
+ EXPECT_EQ(kFlags, key_event2->flags());
// Check before state.
EXPECT_EQ(2,
@@ -1023,9 +1015,8 @@ TEST_F(InputMethodIBusKeyEventTest, MultiKeyEventDelayResponseTest) {
}
TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseResetTest) {
- const int kXFlags = ShiftMask;
ScopedXI2Event xevent;
- xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, kXFlags);
+ xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_SHIFT_DOWN);
const ui::KeyEvent event(xevent, true);
// Do key event.