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

Side by Side Diff: Source/core/rendering/RenderLayer.cpp

Issue 26588002: Remove support for -webkit-line-clamp Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Base files missing... Created 7 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Robert O'Callahan <roc+@cs.cmu.edu> 7 * Robert O'Callahan <roc+@cs.cmu.edu>
8 * David Baron <dbaron@fas.harvard.edu> 8 * David Baron <dbaron@fas.harvard.edu>
9 * Christian Biesinger <cbiesinger@web.de> 9 * Christian Biesinger <cbiesinger@web.de>
10 * Randall Jesup <rjesup@wgate.com> 10 * Randall Jesup <rjesup@wgate.com>
(...skipping 2140 matching lines...) Expand 10 before | Expand all | Expand 10 after
2151 delta.setHeight(0); 2151 delta.setHeight(0);
2152 2152
2153 scrollByRecursively(adjustedScrollDelta(delta), ScrollOffsetClamped); 2153 scrollByRecursively(adjustedScrollDelta(delta), ScrollOffsetClamped);
2154 } 2154 }
2155 2155
2156 void RenderLayer::scrollByRecursively(const IntSize& delta, ScrollOffsetClamping clamp) 2156 void RenderLayer::scrollByRecursively(const IntSize& delta, ScrollOffsetClamping clamp)
2157 { 2157 {
2158 if (delta.isZero()) 2158 if (delta.isZero())
2159 return; 2159 return;
2160 2160
2161 bool restrictedByLineClamp = false; 2161 if (renderer()->hasOverflowClip()) {
2162 if (renderer()->parent())
2163 restrictedByLineClamp = !renderer()->parent()->style()->lineClamp().isNo ne();
2164
2165 if (renderer()->hasOverflowClip() && !restrictedByLineClamp) {
2166 IntSize newScrollOffset = adjustedScrollOffset() + delta; 2162 IntSize newScrollOffset = adjustedScrollOffset() + delta;
2167 m_scrollableArea->scrollToOffset(newScrollOffset, clamp); 2163 m_scrollableArea->scrollToOffset(newScrollOffset, clamp);
2168 2164
2169 // If this layer can't do the scroll we ask the next layer up that can s croll to try 2165 // If this layer can't do the scroll we ask the next layer up that can s croll to try
2170 IntSize remainingScrollOffset = newScrollOffset - adjustedScrollOffset() ; 2166 IntSize remainingScrollOffset = newScrollOffset - adjustedScrollOffset() ;
2171 if (!remainingScrollOffset.isZero() && renderer()->parent()) { 2167 if (!remainingScrollOffset.isZero() && renderer()->parent()) {
2172 if (RenderLayer* scrollableLayer = enclosingScrollableLayer()) 2168 if (RenderLayer* scrollableLayer = enclosingScrollableLayer())
2173 scrollableLayer->scrollByRecursively(remainingScrollOffset, clam p); 2169 scrollableLayer->scrollByRecursively(remainingScrollOffset, clam p);
2174 2170
2175 Frame* frame = renderer()->frame(); 2171 Frame* frame = renderer()->frame();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2207 if (!page) 2203 if (!page)
2208 return false; 2204 return false;
2209 return !page->autoscrollInProgress(); 2205 return !page->autoscrollInProgress();
2210 } 2206 }
2211 2207
2212 void RenderLayer::scrollRectToVisible(const LayoutRect& rect, const ScrollAlignm ent& alignX, const ScrollAlignment& alignY) 2208 void RenderLayer::scrollRectToVisible(const LayoutRect& rect, const ScrollAlignm ent& alignX, const ScrollAlignment& alignY)
2213 { 2209 {
2214 RenderLayer* parentLayer = 0; 2210 RenderLayer* parentLayer = 0;
2215 LayoutRect newRect = rect; 2211 LayoutRect newRect = rect;
2216 2212
2217 bool restrictedByLineClamp = false; 2213 if (renderer()->parent())
2218 if (renderer()->parent()) {
2219 parentLayer = renderer()->parent()->enclosingLayer(); 2214 parentLayer = renderer()->parent()->enclosingLayer();
2220 restrictedByLineClamp = !renderer()->parent()->style()->lineClamp().isNo ne();
2221 }
2222 2215
2223 if (renderer()->hasOverflowClip() && !restrictedByLineClamp) { 2216 if (renderer()->hasOverflowClip()) {
2224 // Don't scroll to reveal an overflow layer that is restricted by the -w ebkit-line-clamp property.
2225 // This will prevent us from revealing text hidden by the slider in Safa ri RSS.
2226 RenderBox* box = renderBox(); 2217 RenderBox* box = renderBox();
2227 ASSERT(box); 2218 ASSERT(box);
2228 LayoutRect localExposeRect(box->absoluteToLocalQuad(FloatQuad(FloatRect( rect)), UseTransforms).boundingBox()); 2219 LayoutRect localExposeRect(box->absoluteToLocalQuad(FloatQuad(FloatRect( rect)), UseTransforms).boundingBox());
2229 LayoutRect layerBounds(0, 0, box->clientWidth(), box->clientHeight()); 2220 LayoutRect layerBounds(0, 0, box->clientWidth(), box->clientHeight());
2230 LayoutRect r = getRectToExpose(layerBounds, localExposeRect, alignX, ali gnY); 2221 LayoutRect r = getRectToExpose(layerBounds, localExposeRect, alignX, ali gnY);
2231 2222
2232 IntSize clampedScrollOffset = m_scrollableArea->clampScrollOffset(adjust edScrollOffset() + toIntSize(roundedIntRect(r).location())); 2223 IntSize clampedScrollOffset = m_scrollableArea->clampScrollOffset(adjust edScrollOffset() + toIntSize(roundedIntRect(r).location()));
2233 if (clampedScrollOffset != adjustedScrollOffset()) { 2224 if (clampedScrollOffset != adjustedScrollOffset()) {
2234 IntSize oldScrollOffset = adjustedScrollOffset(); 2225 IntSize oldScrollOffset = adjustedScrollOffset();
2235 m_scrollableArea->scrollToOffset(clampedScrollOffset); 2226 m_scrollableArea->scrollToOffset(clampedScrollOffset);
(...skipping 3340 matching lines...) Expand 10 before | Expand all | Expand 10 after
5576 } 5567 }
5577 } 5568 }
5578 5569
5579 void showLayerTree(const WebCore::RenderObject* renderer) 5570 void showLayerTree(const WebCore::RenderObject* renderer)
5580 { 5571 {
5581 if (!renderer) 5572 if (!renderer)
5582 return; 5573 return;
5583 showLayerTree(renderer->enclosingLayer()); 5574 showLayerTree(renderer->enclosingLayer());
5584 } 5575 }
5585 #endif 5576 #endif
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderDeprecatedFlexibleBox.cpp ('k') | Source/core/rendering/style/LineClampValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698