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

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

Issue 1240943002: Mac: Fix Korean input on OSX 10.11 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ElCapitan
Patch Set: Created 5 years, 5 months 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 | « content/browser/renderer_host/render_widget_host_view_mac.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index b060993bc86b60f4deef82fbd628feecf78464c1..7144d9a80315c1470773f41e6b558b30e44d28e4 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -2101,6 +2101,7 @@ void RenderWidgetHostViewMac::OnDisplayMetricsChanged(
// Clear them here so that we can know whether they have changed afterwards.
textToBeInserted_.clear();
markedText_.clear();
+ markedTextSelectedRange_ = NSMakeRange(NSNotFound, 0);
underlines_.clear();
unmarkTextCalled_ = NO;
hasEditCommands_ = NO;
@@ -2184,11 +2185,11 @@ void RenderWidgetHostViewMac::OnDisplayMetricsChanged(
if (hasMarkedText_ && markedText_.length()) {
// Sends the updated marked text to the renderer so it can update the
// composition node in WebKit.
- // When marked text is available, |selectedRange_| will be the range being
- // selected inside the marked text.
+ // When marked text is available, |markedTextSelectedRange_| will be the
+ // range being selected inside the marked text.
widgetHost->ImeSetComposition(markedText_, underlines_,
- selectedRange_.location,
- NSMaxRange(selectedRange_));
+ markedTextSelectedRange_.location,
+ NSMaxRange(markedTextSelectedRange_));
} else if (oldHasMarkedText && !hasMarkedText_ && !textInserted) {
if (unmarkTextCalled_) {
widgetHost->ImeConfirmComposition(
@@ -2863,6 +2864,13 @@ extern NSString *NSTextInputReplacementRangeAttributeName;
return rect;
}
+- (NSRange)selectedRange {
+ if (hasMarkedText_)
+ return NSMakeRange(NSMaxRange(markedRange_), 0);
James Su 2015/07/17 03:47:37 I'm not sure if this logic is necessary. The devel
Andre 2015/07/17 18:05:44 Thanks James. This is actually the main fix for th
James Su 2015/07/18 02:26:33 Can you investigate the root cause of this issue?
+
+ return selectedRange_;
+}
+
- (NSRange)markedRange {
// An input method calls this method to check if an application really has
// a text being composed when hasMarkedText call returns true.
@@ -2922,6 +2930,7 @@ extern NSString *NSTextInputReplacementRangeAttributeName;
// input method calls this method.
hasMarkedText_ = NO;
markedText_.clear();
+ markedTextSelectedRange_ = NSMakeRange(NSNotFound, 0);
underlines_.clear();
// If we are handling a key down event, then ConfirmComposition() will be
@@ -2946,7 +2955,7 @@ extern NSString *NSTextInputReplacementRangeAttributeName;
int length = [im_text length];
// |markedRange_| will get set on a callback from ImeSetComposition().
- selectedRange_ = newSelRange;
+ markedTextSelectedRange_ = newSelRange;
markedText_ = base::SysNSStringToUTF16(im_text);
hasMarkedText_ = (length > 0);
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698