diff options
Diffstat (limited to 'Source/WebCore/page/FocusController.cpp')
-rw-r--r-- | Source/WebCore/page/FocusController.cpp | 17 |
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(); |