summaryrefslogtreecommitdiffstats
path: root/WebCore/page/FocusController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/page/FocusController.cpp')
-rw-r--r--WebCore/page/FocusController.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/WebCore/page/FocusController.cpp b/WebCore/page/FocusController.cpp
index 2c2c447..a87d6a6 100644
--- a/WebCore/page/FocusController.cpp
+++ b/WebCore/page/FocusController.cpp
@@ -623,8 +623,11 @@ bool FocusController::setFocusedNode(Node* node, PassRefPtr<Frame> newFocusedFra
// Setting the focused node can result in losing our last reft to node when JS event handlers fire.
RefPtr<Node> protect = node;
- if (newDocument)
- newDocument->setFocusedNode(node);
+ if (newDocument) {
+ bool successfullyFocused = newDocument->setFocusedNode(node);
+ if (!successfullyFocused)
+ return false;
+ }
if (newDocument->focusedNode() == node)
m_page->editorClient()->setInputMethodState(node->shouldUseInputMethod());
@@ -641,7 +644,7 @@ void FocusController::setActive(bool active)
if (FrameView* view = m_page->mainFrame()->view()) {
if (!view->platformWidget()) {
- view->layoutIfNeededRecursive();
+ view->updateLayoutAndStyleIfNeededRecursive();
view->updateControlTints();
}
}