| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 3 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 : m_fontData(fontData) | 107 : m_fontData(fontData) |
| 108 , m_fontElement(fontElement) | 108 , m_fontElement(fontElement) |
| 109 , m_walkerData(data) | 109 , m_walkerData(data) |
| 110 , m_walkerCallback(callback) | 110 , m_walkerCallback(callback) |
| 111 , m_walkerMissingGlyphCallback(missingGlyphCallback) | 111 , m_walkerMissingGlyphCallback(missingGlyphCallback) |
| 112 { | 112 { |
| 113 } | 113 } |
| 114 | 114 |
| 115 void walk(const TextRun& run, bool isVerticalText, const String& language, i
nt from, int to) | 115 void walk(const TextRun& run, bool isVerticalText, const String& language, i
nt from, int to) |
| 116 { | 116 { |
| 117 ASSERT(0 <= from && from <= to && to - from <= run.length()); | 117 if (from < 0 || to < 0 || from > to || from >= run.length() || to > run.
length()) |
| 118 return; |
| 118 | 119 |
| 119 const String text = Font::normalizeSpaces(run.data(from), to - from); | 120 const String text = Font::normalizeSpaces(run.data(from), to - from); |
| 120 Vector<SVGGlyph::ArabicForm> chars(charactersWithArabicForm(text, run.rt
l())); | 121 Vector<SVGGlyph::ArabicForm> chars(charactersWithArabicForm(text, run.rt
l())); |
| 121 | 122 |
| 122 SVGGlyph identifier; | 123 SVGGlyph identifier; |
| 123 bool foundGlyph = false; | 124 bool foundGlyph = false; |
| 124 int characterLookupRange; | 125 int characterLookupRange; |
| 125 int endOfScanRange = to + m_walkerData.extraCharsAvailable; | 126 int endOfScanRange = to + m_walkerData.extraCharsAvailable; |
| 126 | 127 |
| 127 RenderObject* renderObject = referencingRenderObjectFromRun(run); | 128 RenderObject* renderObject = referencingRenderObjectFromRun(run); |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 { | 436 { |
| 436 // TODO: Fix text selection when HTML text is drawn using a SVG Font | 437 // TODO: Fix text selection when HTML text is drawn using a SVG Font |
| 437 // We need to integrate the SVG text selection code in the offsetForPosition
() framework. | 438 // We need to integrate the SVG text selection code in the offsetForPosition
() framework. |
| 438 // This will also fix a major issue, that SVG Text code can't select arabic
strings properly. | 439 // This will also fix a major issue, that SVG Text code can't select arabic
strings properly. |
| 439 return 0; | 440 return 0; |
| 440 } | 441 } |
| 441 | 442 |
| 442 } | 443 } |
| 443 | 444 |
| 444 #endif | 445 #endif |
| OLD | NEW |