summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-30 23:18:34 +0000
committerskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-30 23:18:34 +0000
commita66aa94042d130a8c1220be94468f640aedf6db4 (patch)
tree00c3fafbb8d2cc80a5148cb1370324568bc5ebf3 /ash
parent84b3ee4741f5f3eac347bfee5c9c625c9fcda9e4 (diff)
downloadchromium_src-a66aa94042d130a8c1220be94468f640aedf6db4.zip
chromium_src-a66aa94042d130a8c1220be94468f640aedf6db4.tar.gz
chromium_src-a66aa94042d130a8c1220be94468f640aedf6db4.tar.bz2
Fixing french keyboard handling
BUG=129017 TEST=none Review URL: https://chromiumcodereview.appspot.com/10452042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139678 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/accelerators/accelerator_controller.cc4
-rw-r--r--ash/accelerators/accelerator_controller_unittest.cc4
-rw-r--r--ash/accelerators/accelerator_table.cc16
-rw-r--r--ash/ime_control_delegate.h5
4 files changed, 13 insertions, 16 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
index 3cd9db2..6434a5f 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -242,6 +242,10 @@ void AcceleratorController::UnregisterAll(ui::AcceleratorTarget* target) {
}
bool AcceleratorController::Process(const ui::Accelerator& accelerator) {
+ if (ime_control_delegate_.get()) {
+ return accelerator_manager_->Process(
+ ime_control_delegate_->RemapAccelerator(accelerator));
+ }
return accelerator_manager_->Process(accelerator);
}
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
index 510e250..71eef58 100644
--- a/ash/accelerators/accelerator_controller_unittest.cc
+++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -249,6 +249,10 @@ class DummyImeControlDelegate : public ImeControlDelegate {
const ui::Accelerator& last_accelerator() const {
return last_accelerator_;
}
+ ui::Accelerator RemapAccelerator(
+ const ui::Accelerator& accelerator) {
+ return ui::Accelerator(accelerator);
+ }
private:
const bool consume_;
diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc
index dd64375..bbe3229 100644
--- a/ash/accelerators/accelerator_table.cc
+++ b/ash/accelerators/accelerator_table.cc
@@ -84,22 +84,6 @@ const AcceleratorData kAcceleratorData[] = {
{ true, ui::VKEY_8, ui::EF_ALT_DOWN, SELECT_WIN_7 },
{ true, ui::VKEY_9, ui::EF_ALT_DOWN, SELECT_LAST_WIN },
- // We need the number keys with and without shift since the French keyboard
- // does not have explicit number keys. Instead they have to press
- // 'Shift' + .. to access the keys. If we ever have an overlap of
- // functionality, we should think about either assembling this table
- // dynamically - or by decoding the keys properly (which is of course in
- // conflict with other keyboards since the Shift+ is missing then).
- { true, ui::VKEY_1, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_0 },
- { true, ui::VKEY_2, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_1 },
- { true, ui::VKEY_3, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_2 },
- { true, ui::VKEY_4, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_3 },
- { true, ui::VKEY_5, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_4 },
- { true, ui::VKEY_6, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_5 },
- { true, ui::VKEY_7, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_6 },
- { true, ui::VKEY_8, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_7 },
- { true, ui::VKEY_9, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_LAST_WIN },
-
// Window management shortcuts.
{ true, ui::VKEY_OEM_4, ui::EF_ALT_DOWN, WINDOW_SNAP_LEFT },
{ true, ui::VKEY_OEM_6, ui::EF_ALT_DOWN, WINDOW_SNAP_RIGHT },
diff --git a/ash/ime_control_delegate.h b/ash/ime_control_delegate.h
index 5d6e538..f52ef50 100644
--- a/ash/ime_control_delegate.h
+++ b/ash/ime_control_delegate.h
@@ -21,6 +21,11 @@ class ImeControlDelegate {
virtual bool HandlePreviousIme() = 0;
// Switches to another IME depending on the |accelerator|.
virtual bool HandleSwitchIme(const ui::Accelerator& accelerator) = 0;
+
+ // Checks for special language anomalies and re-map the |accelerator|
+ // accordingly.
+ virtual ui::Accelerator RemapAccelerator(
+ const ui::Accelerator& accelerator) = 0;
};
} // namespace ash