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

Side by Side Diff: sky/engine/core/css/resolver/StyleAdjuster.cpp

Issue 1061163002: Remove all uses of display:block and display:inline-block. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: update one more usage Created 5 years, 8 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) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved.
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 if (style->preserves3D() && (style->overflowX() != OVISIBLE 177 if (style->preserves3D() && (style->overflowX() != OVISIBLE
178 || style->overflowY() != OVISIBLE 178 || style->overflowY() != OVISIBLE
179 || style->hasFilter())) 179 || style->hasFilter()))
180 style->setTransformStyle3D(TransformStyle3DFlat); 180 style->setTransformStyle3D(TransformStyle3DFlat);
181 181
182 adjustStyleForAlignment(*style, *parentStyle); 182 adjustStyleForAlignment(*style, *parentStyle);
183 } 183 }
184 184
185 void StyleAdjuster::adjustStyleForAlignment(RenderStyle& style, const RenderStyl e& parentStyle) 185 void StyleAdjuster::adjustStyleForAlignment(RenderStyle& style, const RenderStyl e& parentStyle)
186 { 186 {
187 bool isFlex = style.isDisplayFlexibleBox();
188 bool absolutePositioned = style.position() == AbsolutePosition;
189
190 // If the inherited value of justify-items includes the legacy keyword, 'aut o'
191 // computes to the the inherited value.
192 // Otherwise, auto computes to:
193 // - 'stretch' for flex containers.
194 // - 'start' for everything else.
195 if (style.justifyItems() == ItemPositionAuto) { 187 if (style.justifyItems() == ItemPositionAuto) {
196 if (parentStyle.justifyItemsPositionType() == LegacyPosition) { 188 style.setJustifyItems(parentStyle.justifyItems());
197 style.setJustifyItems(parentStyle.justifyItems()); 189 style.setJustifyItemsPositionType(parentStyle.justifyItemsPositionType() );
198 style.setJustifyItemsPositionType(parentStyle.justifyItemsPositionTy pe());
199 } else if (isFlex) {
200 style.setJustifyItems(ItemPositionStretch);
201 }
202 } 190 }
203 191
204 // The 'auto' keyword computes to 'stretch' on absolutely-positioned element s,
205 // and to the computed value of justify-items on the parent (minus
206 // any legacy keywords) on all other boxes.
207 if (style.justifySelf() == ItemPositionAuto) { 192 if (style.justifySelf() == ItemPositionAuto) {
208 if (absolutePositioned) { 193 style.setJustifySelf(parentStyle.justifyItems());
eseidel 2015/04/06 23:29:19 Should this be squashed into a single if now? Thes
ojan 2015/04/06 23:41:49 They're reading/writing different values. justifyI
209 style.setJustifySelf(ItemPositionStretch); 194 style.setJustifySelfOverflowAlignment(parentStyle.justifyItemsOverflowAl ignment());
210 } else {
211 style.setJustifySelf(parentStyle.justifyItems());
212 style.setJustifySelfOverflowAlignment(parentStyle.justifyItemsOverfl owAlignment());
213 }
214 } 195 }
215 196
216 // The 'auto' keyword computes to:
217 // - 'stretch' for flex containers,
218 // - 'start' for everything else.
219 if (style.alignItems() == ItemPositionAuto) {
220 if (isFlex)
221 style.setAlignItems(ItemPositionStretch);
222 }
223
224 // The 'auto' keyword computes to 'stretch' on absolutely-positioned element s,
225 // and to the computed value of align-items on the parent (minus
226 // any 'legacy' keywords) on all other boxes.
227 if (style.alignSelf() == ItemPositionAuto) { 197 if (style.alignSelf() == ItemPositionAuto) {
228 if (absolutePositioned) { 198 style.setAlignSelf(parentStyle.alignItems());
229 style.setAlignSelf(ItemPositionStretch); 199 style.setAlignSelfOverflowAlignment(parentStyle.alignItemsOverflowAlignm ent());
eseidel 2015/04/06 23:29:19 This one too? are these ifs even needed?
230 } else {
231 style.setAlignSelf(parentStyle.alignItems());
232 style.setAlignSelfOverflowAlignment(parentStyle.alignItemsOverflowAl ignment());
233 }
234 } 200 }
235 } 201 }
236 202
237 void StyleAdjuster::adjustOverflow(RenderStyle* style) 203 void StyleAdjuster::adjustOverflow(RenderStyle* style)
238 { 204 {
239 ASSERT(style->overflowX() != OVISIBLE || style->overflowY() != OVISIBLE); 205 ASSERT(style->overflowX() != OVISIBLE || style->overflowY() != OVISIBLE);
240 206
241 // If either overflow value is not visible, change to auto. 207 // If either overflow value is not visible, change to auto.
242 if (style->overflowX() == OVISIBLE && style->overflowY() != OVISIBLE) { 208 if (style->overflowX() == OVISIBLE && style->overflowY() != OVISIBLE) {
243 // FIXME: Once we implement pagination controls, overflow-x should defau lt to hidden 209 // FIXME: Once we implement pagination controls, overflow-x should defau lt to hidden
244 // if overflow-y is set to -webkit-paged-x or -webkit-page-y. For now, w e'll let it 210 // if overflow-y is set to -webkit-paged-x or -webkit-page-y. For now, w e'll let it
245 // default to auto so we can at least scroll through the pages. 211 // default to auto so we can at least scroll through the pages.
246 style->setOverflowX(OAUTO); 212 style->setOverflowX(OAUTO);
247 } else if (style->overflowY() == OVISIBLE && style->overflowX() != OVISIBLE) { 213 } else if (style->overflowY() == OVISIBLE && style->overflowX() != OVISIBLE) {
248 style->setOverflowY(OAUTO); 214 style->setOverflowY(OAUTO);
249 } 215 }
250 } 216 }
251 217
252 } 218 }
OLDNEW
« no previous file with comments | « sky/engine/core/css/parser/CSSPropertyParser.cpp ('k') | sky/engine/core/rendering/RenderFlexibleBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698