summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbashi@chromium.org <bashi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-12 00:39:33 +0000
committerbashi@chromium.org <bashi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-12 00:39:33 +0000
commitba7fd4a9ccc5c568e1357d6a739c53411c8f8e13 (patch)
treeb7d5ab33273ea67cb4e238265a00c86eee3839e7
parentac26a33cf653d9c9173306566607d39713074664 (diff)
downloadchromium_src-ba7fd4a9ccc5c568e1357d6a739c53411c8f8e13.zip
chromium_src-ba7fd4a9ccc5c568e1357d6a739c53411c8f8e13.tar.gz
chromium_src-ba7fd4a9ccc5c568e1357d6a739c53411c8f8e13.tar.bz2
Updating markedRange when SelectionChanged received.
Updates markedRange to the selected range so that retrieving markedRange immediately after calling setMarkedText: returns the current caret position. This is a workaround for IMEs which calls setMarkedText: and retrives markedRange in the same event loop to show the candidate window. BUG=86460 TEST=Checked manually that the candidate window is displayed at the correct position. Review URL: http://codereview.chromium.org/7335001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92087 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_mac.mm6
1 files changed, 6 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.mm b/chrome/browser/renderer_host/render_widget_host_view_mac.mm
index 6174c29..7a3b55b 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/chrome/browser/renderer_host/render_widget_host_view_mac.mm
@@ -640,6 +640,12 @@ void RenderWidgetHostViewMac::SelectionChanged(const std::string& text,
const ui::Range& range) {
selected_text_ = text;
[cocoa_view_ setSelectedRange:range.ToNSRange()];
+ // Updaes markedRange when there is no marked text so that retrieving
+ // markedRange immediately after calling setMarkdText: returns the current
+ // caret position.
+ if (![cocoa_view_ hasMarkedText]) {
+ [cocoa_view_ setMarkedRange:range.ToNSRange()];
+ }
}
bool RenderWidgetHostViewMac::IsPopup() const {