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

Side by Side Diff: Source/WebCore/rendering/RenderBlockLineLayout.cpp

Issue 10829151: Merge 124295 - Float imprecision causes incorrect wrapping in LineLayout with subpixel layout (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1180/
Patch Set: Created 8 years, 4 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
« no previous file with comments | « LayoutTests/platform/wk2/Skipped ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved. 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved.
4 * Copyright (C) 2010 Google Inc. All rights reserved. 4 * Copyright (C) 2010 Google Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 , m_committedWidth(0) 68 , m_committedWidth(0)
69 , m_overhangWidth(0) 69 , m_overhangWidth(0)
70 , m_left(0) 70 , m_left(0)
71 , m_right(0) 71 , m_right(0)
72 , m_availableWidth(0) 72 , m_availableWidth(0)
73 , m_isFirstLine(isFirstLine) 73 , m_isFirstLine(isFirstLine)
74 { 74 {
75 ASSERT(block); 75 ASSERT(block);
76 updateAvailableWidth(); 76 updateAvailableWidth();
77 } 77 }
78 #if ENABLE(SUBPIXEL_LAYOUT)
79 bool fitsOnLine() const { return currentWidth() <= m_availableWidth + Layout Unit::epsilon(); }
80 bool fitsOnLine(float extra) const { return currentWidth() + extra <= m_avai lableWidth + LayoutUnit::epsilon(); }
81 #else
78 bool fitsOnLine() const { return currentWidth() <= m_availableWidth; } 82 bool fitsOnLine() const { return currentWidth() <= m_availableWidth; }
79 bool fitsOnLine(float extra) const { return currentWidth() + extra <= m_avai lableWidth; } 83 bool fitsOnLine(float extra) const { return currentWidth() + extra <= m_avai lableWidth; }
84 #endif
80 float currentWidth() const { return m_committedWidth + m_uncommittedWidth; } 85 float currentWidth() const { return m_committedWidth + m_uncommittedWidth; }
81 86
82 // FIXME: We should eventually replace these three functions by ones that wo rk on a higher abstraction. 87 // FIXME: We should eventually replace these three functions by ones that wo rk on a higher abstraction.
83 float uncommittedWidth() const { return m_uncommittedWidth; } 88 float uncommittedWidth() const { return m_uncommittedWidth; }
84 float committedWidth() const { return m_committedWidth; } 89 float committedWidth() const { return m_committedWidth; }
85 float availableWidth() const { return m_availableWidth; } 90 float availableWidth() const { return m_availableWidth; }
86 91
87 void updateAvailableWidth(); 92 void updateAvailableWidth();
88 void shrinkAvailableWidthForNewFloatIfNeeded(RenderBlock::FloatingObject*); 93 void shrinkAvailableWidthForNewFloatIfNeeded(RenderBlock::FloatingObject*);
89 void addUncommittedWidth(float delta) { m_uncommittedWidth += delta; } 94 void addUncommittedWidth(float delta) { m_uncommittedWidth += delta; }
(...skipping 2711 matching lines...) Expand 10 before | Expand all | Expand 10 after
2801 lineGridBox->alignBoxesInBlockDirection(logicalHeight(), textBoxDataMap, ver ticalPositionCache); 2806 lineGridBox->alignBoxesInBlockDirection(logicalHeight(), textBoxDataMap, ver ticalPositionCache);
2802 2807
2803 setLineGridBox(lineGridBox); 2808 setLineGridBox(lineGridBox);
2804 2809
2805 // FIXME: If any of the characteristics of the box change compared to the ol d one, then we need to do a deep dirtying 2810 // FIXME: If any of the characteristics of the box change compared to the ol d one, then we need to do a deep dirtying
2806 // (similar to what happens when the page height changes). Ideally, though, we only do this if someone is actually snapping 2811 // (similar to what happens when the page height changes). Ideally, though, we only do this if someone is actually snapping
2807 // to this grid. 2812 // to this grid.
2808 } 2813 }
2809 2814
2810 } 2815 }
OLDNEW
« no previous file with comments | « LayoutTests/platform/wk2/Skipped ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698