| Index: chrome/renderer/render_view.cc
|
| ===================================================================
|
| --- chrome/renderer/render_view.cc (revision 70404)
|
| +++ chrome/renderer/render_view.cc (working copy)
|
| @@ -1625,18 +1625,12 @@
|
| }
|
|
|
| void RenderView::OnScrollFocusedEditableNodeIntoView() {
|
| - if (!webview())
|
| - return;
|
| - WebFrame* focused_frame = webview()->focusedFrame();
|
| - if (focused_frame) {
|
| - WebDocument doc = focused_frame->document();
|
| - if (!doc.isNull()) {
|
| - WebNode node = doc.focusedNode();
|
| - if (IsEditableNode(node))
|
| - // TODO(varunjain): Change webkit API to scroll a particular node into
|
| - // view and use that API here instead.
|
| - webview()->scrollFocusedNodeIntoView();
|
| - }
|
| + WebNode node;
|
| + if (GetFocusedNode(node)) {
|
| + if (IsEditableNode(node))
|
| + // TODO(varunjain): Change webkit API to scroll a particular node into
|
| + // view and use that API here instead.
|
| + webview()->scrollFocusedNodeIntoView();
|
| }
|
| }
|
|
|
| @@ -2406,6 +2400,10 @@
|
| word));
|
| }
|
|
|
| +void RenderView::continuousSpellCheckingEnabledStateChanged() {
|
| + UpdateToggleSpellCheckCommandState();
|
| +}
|
| +
|
| bool RenderView::runFileChooser(
|
| const WebKit::WebFileChooserParams& params,
|
| WebFileChooserCompletion* chooser_completion) {
|
| @@ -2532,6 +2530,26 @@
|
| }
|
| }
|
|
|
| +void RenderView::UpdateToggleSpellCheckCommandState() {
|
| + bool is_enabled = false;
|
| + WebNode node;
|
| + if (GetFocusedNode(node))
|
| + is_enabled = IsEditableNode(node);
|
| +
|
| + int checked_state = 0;
|
| + if (is_enabled && webview()) {
|
| + WebFrame* frame = webview()->focusedFrame();
|
| + if (frame->isContinuousSpellCheckingEnabled()) {
|
| + checked_state = 1;
|
| + }
|
| + }
|
| +
|
| + Send(new ViewHostMsg_CommandStateChanged(routing_id_,
|
| + "ToggleSpellCheck",
|
| + is_enabled,
|
| + checked_state));
|
| +}
|
| +
|
| void RenderView::StartNavStateSyncTimerIfNecessary() {
|
| int delay;
|
| if (send_content_state_immediately_)
|
| @@ -2608,6 +2626,8 @@
|
| webview()->accessibilityObject(),
|
| WebKit::WebAccessibilityNotificationFocusedUIElementChanged);
|
| }
|
| +
|
| + UpdateToggleSpellCheckCommandState();
|
| }
|
|
|
| void RenderView::navigateBackForwardSoon(int offset) {
|
| @@ -4572,6 +4592,21 @@
|
| return frame;
|
| }
|
|
|
| +bool RenderView::GetFocusedNode(WebNode& node) const {
|
| + if (!webview())
|
| + return false;
|
| + WebFrame* focused_frame = webview()->focusedFrame();
|
| + if (focused_frame) {
|
| + WebDocument doc = focused_frame->document();
|
| + if (!doc.isNull()) {
|
| + node = doc.focusedNode();
|
| + return true;
|
| + }
|
| + }
|
| +
|
| + return false;
|
| +}
|
| +
|
| void RenderView::SetSuggestions(const std::vector<std::string>& suggestions) {
|
| // Explicitly allow empty vector to be sent to the browser.
|
| Send(new ViewHostMsg_SetSuggestions(routing_id_, page_id_, suggestions));
|
|
|