summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/page/FocusController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/page/FocusController.cpp')
-rw-r--r--Source/WebCore/page/FocusController.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/Source/WebCore/page/FocusController.cpp b/Source/WebCore/page/FocusController.cpp
index 10901c5..41cfee4 100644
--- a/Source/WebCore/page/FocusController.cpp
+++ b/Source/WebCore/page/FocusController.cpp
@@ -301,7 +301,7 @@ bool FocusController::advanceFocusInDocumentOrder(FocusDirection direction, Keyb
static bool relinquishesEditingFocus(Node *node)
{
ASSERT(node);
- ASSERT(node->isContentEditable());
+ ASSERT(node->rendererIsEditable());
Node* root = node->rootEditableElement();
Frame* frame = node->document()->frame();
@@ -410,11 +410,16 @@ void FocusController::setActive(bool active)
view->updateLayoutAndStyleIfNeededRecursive();
view->updateControlTints();
}
- // FIXME: This should propogate to all ScrollableAreas.
- if (!active)
- view->scrollAnimator()->contentAreaDidHide();
- else
- view->scrollAnimator()->contentAreaDidShow();
+
+ if (const HashSet<ScrollableArea*>* scrollableAreas = m_page->scrollableAreaSet()) {
+ HashSet<ScrollableArea*>::const_iterator end = scrollableAreas->end();
+ for (HashSet<ScrollableArea*>::const_iterator it = scrollableAreas->begin(); it != end; ++it) {
+ if (!active)
+ (*it)->scrollAnimator()->contentAreaDidHide();
+ else
+ (*it)->scrollAnimator()->contentAreaDidShow();
+ }
+ }
}
focusedOrMainFrame()->selection()->pageActivationChanged();