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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutListItem.cpp

Issue 1656743002: Removing more implicit LayoutUnit construction (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix additional test Created 4 years, 10 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 * Copyright (C) 2003, 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2004, 2005, 2006, 2010 Apple Inc. All rights reserved.
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net)
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 348
349 LayoutUnit lineTop = root.lineTop(); 349 LayoutUnit lineTop = root.lineTop();
350 LayoutUnit lineBottom = root.lineBottom(); 350 LayoutUnit lineBottom = root.lineBottom();
351 351
352 // TODO(jchaffraix): Propagating the overflow to the line boxes seems 352 // TODO(jchaffraix): Propagating the overflow to the line boxes seems
353 // pretty wrong (https://crbug.com/554160). 353 // pretty wrong (https://crbug.com/554160).
354 // FIXME: Need to account for relative positioning in the layout overflo w. 354 // FIXME: Need to account for relative positioning in the layout overflo w.
355 if (style()->isLeftToRightDirection()) { 355 if (style()->isLeftToRightDirection()) {
356 LayoutUnit leftLineOffset = logicalLeftOffsetForLine(blockOffset, lo gicalLeftOffsetForLine(blockOffset, DoNotIndentText), DoNotIndentText); 356 LayoutUnit leftLineOffset = logicalLeftOffsetForLine(blockOffset, lo gicalLeftOffsetForLine(blockOffset, DoNotIndentText), DoNotIndentText);
357 markerLogicalLeft = leftLineOffset - lineOffset - paddingStart() - b orderStart() + m_marker->marginStart(); 357 markerLogicalLeft = leftLineOffset - lineOffset - paddingStart() - b orderStart() + m_marker->marginStart();
358 m_marker->inlineBoxWrapper()->moveInInlineDirection((markerLogicalLe ft - markerOldLogicalLeft).toFloat()); 358 m_marker->inlineBoxWrapper()->moveInInlineDirection(markerLogicalLef t - markerOldLogicalLeft);
359 for (InlineFlowBox* box = m_marker->inlineBoxWrapper()->parent(); bo x; box = box->parent()) { 359 for (InlineFlowBox* box = m_marker->inlineBoxWrapper()->parent(); bo x; box = box->parent()) {
360 LayoutRect newLogicalVisualOverflowRect = box->logicalVisualOver flowRect(lineTop, lineBottom); 360 LayoutRect newLogicalVisualOverflowRect = box->logicalVisualOver flowRect(lineTop, lineBottom);
361 LayoutRect newLogicalLayoutOverflowRect = box->logicalLayoutOver flowRect(lineTop, lineBottom); 361 LayoutRect newLogicalLayoutOverflowRect = box->logicalLayoutOver flowRect(lineTop, lineBottom);
362 if (markerLogicalLeft < newLogicalVisualOverflowRect.x() && !hit SelfPaintingLayer) { 362 if (markerLogicalLeft < newLogicalVisualOverflowRect.x() && !hit SelfPaintingLayer) {
363 newLogicalVisualOverflowRect.setWidth(newLogicalVisualOverfl owRect.maxX() - markerLogicalLeft); 363 newLogicalVisualOverflowRect.setWidth(newLogicalVisualOverfl owRect.maxX() - markerLogicalLeft);
364 newLogicalVisualOverflowRect.setX(markerLogicalLeft); 364 newLogicalVisualOverflowRect.setX(markerLogicalLeft);
365 if (box == root) 365 if (box == root)
366 adjustOverflow = true; 366 adjustOverflow = true;
367 } 367 }
368 if (markerLogicalLeft < newLogicalLayoutOverflowRect.x()) { 368 if (markerLogicalLeft < newLogicalLayoutOverflowRect.x()) {
369 newLogicalLayoutOverflowRect.setWidth(newLogicalLayoutOverfl owRect.maxX() - markerLogicalLeft); 369 newLogicalLayoutOverflowRect.setWidth(newLogicalLayoutOverfl owRect.maxX() - markerLogicalLeft);
370 newLogicalLayoutOverflowRect.setX(markerLogicalLeft); 370 newLogicalLayoutOverflowRect.setX(markerLogicalLeft);
371 if (box == root) 371 if (box == root)
372 adjustOverflow = true; 372 adjustOverflow = true;
373 } 373 }
374 box->overrideOverflowFromLogicalRects(newLogicalLayoutOverflowRe ct, newLogicalVisualOverflowRect, lineTop, lineBottom); 374 box->overrideOverflowFromLogicalRects(newLogicalLayoutOverflowRe ct, newLogicalVisualOverflowRect, lineTop, lineBottom);
375 if (box->boxModelObject().hasSelfPaintingLayer()) 375 if (box->boxModelObject().hasSelfPaintingLayer())
376 hitSelfPaintingLayer = true; 376 hitSelfPaintingLayer = true;
377 } 377 }
378 } else { 378 } else {
379 LayoutUnit rightLineOffset = logicalRightOffsetForLine(blockOffset, logicalRightOffsetForLine(blockOffset, DoNotIndentText), DoNotIndentText); 379 LayoutUnit rightLineOffset = logicalRightOffsetForLine(blockOffset, logicalRightOffsetForLine(blockOffset, DoNotIndentText), DoNotIndentText);
380 markerLogicalLeft = rightLineOffset - lineOffset + paddingStart() + borderStart() + m_marker->marginEnd(); 380 markerLogicalLeft = rightLineOffset - lineOffset + paddingStart() + borderStart() + m_marker->marginEnd();
381 m_marker->inlineBoxWrapper()->moveInInlineDirection((markerLogicalLe ft - markerOldLogicalLeft).toFloat()); 381 m_marker->inlineBoxWrapper()->moveInInlineDirection(markerLogicalLef t - markerOldLogicalLeft);
382 for (InlineFlowBox* box = m_marker->inlineBoxWrapper()->parent(); bo x; box = box->parent()) { 382 for (InlineFlowBox* box = m_marker->inlineBoxWrapper()->parent(); bo x; box = box->parent()) {
383 LayoutRect newLogicalVisualOverflowRect = box->logicalVisualOver flowRect(lineTop, lineBottom); 383 LayoutRect newLogicalVisualOverflowRect = box->logicalVisualOver flowRect(lineTop, lineBottom);
384 LayoutRect newLogicalLayoutOverflowRect = box->logicalLayoutOver flowRect(lineTop, lineBottom); 384 LayoutRect newLogicalLayoutOverflowRect = box->logicalLayoutOver flowRect(lineTop, lineBottom);
385 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalVis ualOverflowRect.maxX() && !hitSelfPaintingLayer) { 385 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalVis ualOverflowRect.maxX() && !hitSelfPaintingLayer) {
386 newLogicalVisualOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalVisualOverflowRect.x()); 386 newLogicalVisualOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalVisualOverflowRect.x());
387 if (box == root) 387 if (box == root)
388 adjustOverflow = true; 388 adjustOverflow = true;
389 } 389 }
390 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalLay outOverflowRect.maxX()) { 390 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalLay outOverflowRect.maxX()) {
391 newLogicalLayoutOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalLayoutOverflowRect.x()); 391 newLogicalLayoutOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalLayoutOverflowRect.x());
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 // assume that all the following ones have too. 510 // assume that all the following ones have too.
511 // This gives us the opportunity to stop here and avoid 511 // This gives us the opportunity to stop here and avoid
512 // marking the same nodes again. 512 // marking the same nodes again.
513 break; 513 break;
514 } 514 }
515 item->updateValue(); 515 item->updateValue();
516 } 516 }
517 } 517 }
518 518
519 } // namespace blink 519 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutInline.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutListMarker.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698