OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <title>Text Selection when dragging mouse outside the SVG text element</title> |
2 <style> | 3 <style> |
3 text { | 4 text { |
4 font: 10px Arial; | 5 font: 10px Arial; |
5 } | 6 } |
6 </style> | 7 </style> |
7 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlin
k" width="400" height="400" viewBox="0 0 500 500" style="border: 1px solid black
;"> | 8 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlin
k" width="400" height="400" viewBox="0 0 500 500" style="border: 1px solid black
;"> |
8 <g> | 9 <g> |
9 <text id="line1" x="10" y="30">Hello World. Hello, SVG.</text> | 10 <text id="line1" x="10" y="30">Hello World. Hello, SVG.</text> |
10 </g> | 11 </g> |
11 <g transform="translate(120, 30)"> | 12 <g transform="translate(120, 30)"> |
12 <text id="line2" x="50" y="50">Hello World. Hello, SVG.</text> | 13 <text id="line2" x="50" y="50">Hello World. Hello, SVG.</text> |
13 </g> | 14 </g> |
14 <g transform="translate(240, 30)"> | 15 <g transform="translate(240, 30)"> |
15 <text id="line3" x="100" y="100">Hello World. Hello, SVG.</text> | 16 <text id="line3" x="100" y="100">Hello World. Hello, SVG.</text> |
16 </g> | 17 </g> |
17 </svg> | 18 </svg> |
18 <script src="../../resources/js-test.js"></script> | 19 <script src="../../resources/testharness.js"></script> |
| 20 <script src="../../resources/testharnessreport.js"></script> |
19 <script src="resources/SelectionTestCase.js"></script> | 21 <script src="resources/SelectionTestCase.js"></script> |
20 <script type="text/javascript"> | 22 <script> |
21 function getEndPosition(id, offset, gap) { | 23 test(function() { |
22 var element = document.getElementById(id); | 24 var absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); |
23 var endPos = element.getEndPositionOfChar(offset); | 25 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElemen
tId: "line1", start: 7, endElementId: "line3", end: 11 }); |
24 endPos.x += gap.x; | |
25 endPos.y += gap.y; | |
26 var absEndPos = toAbsoluteCoordinates(endPos, element); | |
27 return absEndPos; | |
28 } | |
29 | 26 |
30 var absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); | 27 absEndPos = getEndPosition('line2', 10, { x : 0, y : 30}); |
31 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElementI
d: "line1", start: "7", endElementId: "line3", end: "11" }); | 28 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElemen
tId: "line1", start: 7, endElementId: "line2", end: 11 }); |
32 | 29 |
33 absEndPos = getEndPosition('line2', 10, { x : 0, y : 30}); | 30 absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); |
34 selectTextFromCharToPoint({ id: 'line1', offset: 7 }, absEndPos, { startElementI
d: "line1", start: "7", endElementId: "line2", end: "11" }); | 31 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElemen
tId: "line2", start: 7, endElementId: "line3", end: 11 }); |
35 | 32 |
36 absEndPos = getEndPosition('line3', 10, { x : 0, y : 30}); | 33 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); |
37 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElementI
d: "line2", start: "7", endElementId: "line3", end: "11" }); | 34 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElemen
tId: "line3", start: 7, endElementId: "line1", end: 9 }); |
38 | 35 |
39 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); | 36 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); |
40 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElementI
d: "line3", start: "7", endElementId: "line1", end: "9" }); | 37 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElemen
tId: "line2", start: 7, endElementId: "line1", end: 9 }); |
41 | 38 |
42 absEndPos = getEndPosition('line1', 8, { x : 0, y : -30}); | 39 absEndPos = getEndPosition('line2', 8, { x : 0, y : -30}); |
43 selectTextFromCharToPoint({ id: 'line2', offset: 7 }, absEndPos, { startElementI
d: "line2", start: "7", endElementId: "line1", end: "9" }); | 40 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElemen
tId: "line3", start: 7, endElementId: "line2", end: 9 }); |
44 | 41 }); |
45 absEndPos = getEndPosition('line2', 8, { x : 0, y : -30}); | |
46 selectTextFromCharToPoint({ id: 'line3', offset: 7 }, absEndPos, { startElementI
d: "line3", start: "7", endElementId: "line2", end: "9" }); | |
47 </script> | 42 </script> |
OLD | NEW |