Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(498)

Side by Side Diff: third_party/WebKit/Source/core/dom/Element.cpp

Issue 2416423003: Fix unscrollable scrollers after closing a <dialog>. (Closed)
Patch Set: move to Element Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Peter Kelly (pmk@post.com) 4 * (C) 2001 Peter Kelly (pmk@post.com)
5 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * (C) 2007 David Smith (catfish.man@gmail.com) 6 * (C) 2007 David Smith (catfish.man@gmail.com)
7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
8 * All rights reserved. 8 * All rights reserved.
9 * (C) 2007 Eric Seidel (eric@webkit.org) 9 * (C) 2007 Eric Seidel (eric@webkit.org)
10 * 10 *
(...skipping 3373 matching lines...) Expand 10 before | Expand all | Expand 10 after
3384 3384
3385 void Element::setIsInTopLayer(bool inTopLayer) { 3385 void Element::setIsInTopLayer(bool inTopLayer) {
3386 if (isInTopLayer() == inTopLayer) 3386 if (isInTopLayer() == inTopLayer)
3387 return; 3387 return;
3388 setElementFlag(IsInTopLayer, inTopLayer); 3388 setElementFlag(IsInTopLayer, inTopLayer);
3389 3389
3390 // We must ensure a reattach occurs so the layoutObject is inserted in the 3390 // We must ensure a reattach occurs so the layoutObject is inserted in the
3391 // correct sibling order under LayoutView according to its top layer position, 3391 // correct sibling order under LayoutView according to its top layer position,
3392 // or in its usual place if not in the top layer. 3392 // or in its usual place if not in the top layer.
3393 lazyReattachIfAttached(); 3393 lazyReattachIfAttached();
3394
3395 // PaintLayerScrollableArea::updateAfterLayout depends on top layer state
3396 // via LayoutObject::visibleToHitTesting. See crbug.com/633520 for details.
3397 document().layoutView()->setNeedsLayout(
szager1 2016/10/17 19:16:30 Can we condition this on (layoutObject() && layout
esprehn 2016/10/17 19:19:58 This belongs in Document::removeFromTopLayer
skobes 2016/10/17 19:45:30 We can't - the dialog itself is not a scroller.
skobes 2016/10/17 19:45:30 Done.
3398 LayoutInvalidationReason::TopLayerChanged);
3394 } 3399 }
3395 3400
3396 void Element::requestPointerLock() { 3401 void Element::requestPointerLock() {
3397 if (document().page()) 3402 if (document().page())
3398 document().page()->pointerLockController().requestPointerLock(this); 3403 document().page()->pointerLockController().requestPointerLock(this);
3399 } 3404 }
3400 3405
3401 SpellcheckAttributeState Element::spellcheckAttributeState() const { 3406 SpellcheckAttributeState Element::spellcheckAttributeState() const {
3402 const AtomicString& value = fastGetAttribute(spellcheckAttr); 3407 const AtomicString& value = fastGetAttribute(spellcheckAttr);
3403 if (value == nullAtom) 3408 if (value == nullAtom)
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after
4082 } 4087 }
4083 4088
4084 DEFINE_TRACE_WRAPPERS(Element) { 4089 DEFINE_TRACE_WRAPPERS(Element) {
4085 if (hasRareData()) { 4090 if (hasRareData()) {
4086 visitor->traceWrappers(elementRareData()); 4091 visitor->traceWrappers(elementRareData());
4087 } 4092 }
4088 ContainerNode::traceWrappers(visitor); 4093 ContainerNode::traceWrappers(visitor);
4089 } 4094 }
4090 4095
4091 } // namespace blink 4096 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698