summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-18 01:26:30 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-18 01:26:30 +0000
commit313cba10df7d5f9c194276b4584215e7e49fcaaf (patch)
treea41726741e0a9b36acdc13afd61e70ec794b8f6c /ash
parenta33b9f6a54a41c7a2d39b5cba3a2b032e754db00 (diff)
downloadchromium_src-313cba10df7d5f9c194276b4584215e7e49fcaaf.zip
chromium_src-313cba10df7d5f9c194276b4584215e7e49fcaaf.tar.gz
chromium_src-313cba10df7d5f9c194276b4584215e7e49fcaaf.tar.bz2
Do not consume a translated key event in PartialScreenshotEventFilter.
Since the filter has higher priority than the IME filter, it has a change to process both ET_KEY_PRESSED/RELEASED and ET_TRANSLATED_KEY_PRESS/RELEASE event. However, I don't think the filter should consume the latter ones. BUG=108763 TEST=None Review URL: http://codereview.chromium.org/9414011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122656 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/wm/partial_screenshot_event_filter.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/ash/wm/partial_screenshot_event_filter.cc b/ash/wm/partial_screenshot_event_filter.cc
index c3632e9..ce21e00 100644
--- a/ash/wm/partial_screenshot_event_filter.cc
+++ b/ash/wm/partial_screenshot_event_filter.cc
@@ -22,6 +22,15 @@ bool PartialScreenshotEventFilter::PreHandleKeyEvent(
if (!view_)
return false;
+ // Do not consume a translated key event which is generated by an IME (e.g.,
+ // ui::VKEY_PROCESSKEY) since the key event is generated in response to a key
+ // press or release before showing the screenshot view. This is important not
+ // to confuse key event handling JavaScript code in a page.
+ if (event->type() == ui::ET_TRANSLATED_KEY_PRESS ||
+ event->type() == ui::ET_TRANSLATED_KEY_RELEASE) {
+ return false;
+ }
+
if (event->key_code() == ui::VKEY_ESCAPE)
view_->Cancel();