diff options
author | bashi@chromium.org <bashi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-12 00:39:33 +0000 |
---|---|---|
committer | bashi@chromium.org <bashi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-12 00:39:33 +0000 |
commit | ba7fd4a9ccc5c568e1357d6a739c53411c8f8e13 (patch) | |
tree | b7d5ab33273ea67cb4e238265a00c86eee3839e7 | |
parent | ac26a33cf653d9c9173306566607d39713074664 (diff) | |
download | chromium_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.mm | 6 |
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 { |