Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(628)

Unified Diff: chrome/browser/renderer_host/render_widget_host_view_mac.mm

Issue 460105: Fix issue 23221: accesskey is not supported on Chromium Mac.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/tab_contents/tab_contents_view_mac.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/render_widget_host_view_mac.mm
===================================================================
--- chrome/browser/renderer_host/render_widget_host_view_mac.mm (revision 33947)
+++ chrome/browser/renderer_host/render_widget_host_view_mac.mm (working copy)
@@ -703,9 +703,9 @@
lastKeyPressedEvent_.get() != theEvent &&
[[theEvent characters] length] > 0 &&
renderWidgetHostView_->render_widget_host_) {
- NativeWebKeyboardEvent event([[theEvent characters] characterAtIndex:0],
- ToWebKitModifiers([theEvent modifierFlags]),
- base::Time::Now().ToDoubleT());
+ // Just fabricate a Char event by changing the type of the RawKeyDown
+ // event, to retain all necessary informations, such as unmodifiedText.
+ event.type = WebKit::WebInputEvent::Char;
// We fire menu items on keydown, we don't want to activate menu items
// twice.
event.skip_in_browser = true;
@@ -1352,8 +1352,13 @@
// TODO(hbono): need to handle more commands?
if (selector == @selector(insertNewline:)) {
lastKeyPressedEvent_.reset([[NSApp currentEvent] retain]);
- NativeWebKeyboardEvent event('\r', renderWidgetHostView_->im_modifiers_,
- base::Time::Now().ToDoubleT());
+ // Create the Char event from the NSEvent object, so that we can retain
+ // necessary informations, especially unmodifiedText.
+ NativeWebKeyboardEvent event(lastKeyPressedEvent_.get());
+ event.type = WebKit::WebInputEvent::Char;
+ event.text[0] = '\r';
+ event.text[1] = 0;
+ event.skip_in_browser = true;
renderWidgetHostView_->render_widget_host_->ForwardKeyboardEvent(event);
}
}
@@ -1373,9 +1378,13 @@
NSString* im_text = isAttributedString ? [string string] : string;
if (!renderWidgetHostView_->im_composing_ && [im_text length] == 1) {
lastKeyPressedEvent_.reset([[NSApp currentEvent] retain]);
- NativeWebKeyboardEvent event([im_text characterAtIndex:0],
- renderWidgetHostView_->im_modifiers_,
- base::Time::Now().ToDoubleT());
+ // Create the Char event from the NSEvent object, so that we can retain
+ // necessary informations, especially unmodifiedText.
+ NativeWebKeyboardEvent event(lastKeyPressedEvent_.get());
+ event.type = WebKit::WebInputEvent::Char;
+ event.text[0] = [im_text characterAtIndex:0];
+ event.text[1] = 0;
+ event.skip_in_browser = true;
renderWidgetHostView_->render_widget_host_->ForwardKeyboardEvent(event);
} else {
renderWidgetHostView_->render_widget_host_->ImeConfirmComposition(
« no previous file with comments | « no previous file | chrome/browser/tab_contents/tab_contents_view_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698