OLD | NEW |
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 Apple Inc. All right r
eserved. | 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010 Apple Inc. All right r
eserved. |
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 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 } | 457 } |
458 | 458 |
459 private: | 459 private: |
460 unsigned m_nestedIsolateCount; | 460 unsigned m_nestedIsolateCount; |
461 bool m_haveAddedFakeRunForRootIsolate; | 461 bool m_haveAddedFakeRunForRootIsolate; |
462 }; | 462 }; |
463 | 463 |
464 template <> | 464 template <> |
465 inline void InlineBidiResolver::appendRun() | 465 inline void InlineBidiResolver::appendRun() |
466 { | 466 { |
467 if (!m_emptyRun && !m_eor.atEnd()) { | 467 if (!m_emptyRun && !m_eor.atEnd() && !m_reachedEndOfLine) { |
468 // Keep track of when we enter/leave "unicode-bidi: isolate" inlines. | 468 // Keep track of when we enter/leave "unicode-bidi: isolate" inlines. |
469 // Initialize our state depending on if we're starting in the middle of
such an inline. | 469 // Initialize our state depending on if we're starting in the middle of
such an inline. |
470 // FIXME: Could this initialize from this->inIsolate() instead of walkin
g up the render tree? | 470 // FIXME: Could this initialize from this->inIsolate() instead of walkin
g up the render tree? |
471 IsolateTracker isolateTracker(containingIsolate(m_sor.m_obj, m_sor.root(
))); | 471 IsolateTracker isolateTracker(containingIsolate(m_sor.m_obj, m_sor.root(
))); |
472 int start = m_sor.m_pos; | 472 int start = m_sor.m_pos; |
473 RenderObject* obj = m_sor.m_obj; | 473 RenderObject* obj = m_sor.m_obj; |
474 while (obj && obj != m_eor.m_obj && obj != endOfLine.m_obj) { | 474 while (obj && obj != m_eor.m_obj && obj != endOfLine.m_obj) { |
475 if (isolateTracker.inIsolate()) | 475 if (isolateTracker.inIsolate()) |
476 isolateTracker.addFakeRunIfNecessary(obj, *this); | 476 isolateTracker.addFakeRunIfNecessary(obj, *this); |
477 else | 477 else |
(...skipping 20 matching lines...) Expand all Loading... |
498 m_sor = m_eor; | 498 m_sor = m_eor; |
499 } | 499 } |
500 | 500 |
501 m_direction = WTF::Unicode::OtherNeutral; | 501 m_direction = WTF::Unicode::OtherNeutral; |
502 m_status.eor = WTF::Unicode::OtherNeutral; | 502 m_status.eor = WTF::Unicode::OtherNeutral; |
503 } | 503 } |
504 | 504 |
505 } | 505 } |
506 | 506 |
507 #endif // InlineIterator_h | 507 #endif // InlineIterator_h |
OLD | NEW |