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 |