Index: Source/core/page/FocusController.cpp |
diff --git a/Source/core/page/FocusController.cpp b/Source/core/page/FocusController.cpp |
index 61733ddb1d39229cdc54caa798018f0abb312a5c..4382f680fb5796be7026505d992dd3478f2ea719 100644 |
--- a/Source/core/page/FocusController.cpp |
+++ b/Source/core/page/FocusController.cpp |
@@ -725,8 +725,14 @@ void FocusController::setActive(bool active) |
m_isActive = active; |
Frame* frame = focusedOrMainFrame(); |
- if (frame->isLocalFrame()) |
+ if (frame->isLocalFrame()) { |
+ // Invalidate all custom scrollbars because they support the CSS |
+ // window-active attribute. This should be applied to the entire page so |
+ // we invalidate from the root FrameView instead of just the focused. |
+ if (FrameView* view = toLocalFrame(frame)->localFrameRoot()->document()->view()) |
+ view->invalidateAllCustomScrollbarsOnActiveChanged(); |
toLocalFrame(frame)->selection().pageActivationChanged(); |
+ } |
} |
static void updateFocusCandidateIfNeeded(FocusType type, const FocusCandidate& current, FocusCandidate& candidate, FocusCandidate& closest) |