Wed, 31 Dec 2014 07:16:47 +0100
Revert simplistic fix pending revisit of Mozilla integration attempt.
1 <?xml version="1.0"?>
2 <!DOCTYPE window>
3 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="RTL overflow test" width="640px" height="480px" style="direction: rtl" onload="load()" class="reftest-wait">
5 <hbox style="max-width: 200px; border: 1px solid red;">
6 <scrollbox id="sb" align="start" pack="start" orient="horizontal" flex="1">
7 <button id="sb1" label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/>
8 </scrollbox>
9 </hbox>
11 <hbox style="max-width: 200px; border: 1px solid blue">
12 <arrowscrollbox id="asb" align="start" pack="start" orient="horizontal" flex="1">
13 <button id="asb1" label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/>
14 </arrowscrollbox>
15 </hbox>
17 <hbox style="max-width: 200px; border: 1px solid black">
18 <hbox align="end" pack="end" flex="1">
19 <button label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/>
20 </hbox>
21 </hbox>
23 <script type="text/javascript">
24 <![CDATA[
25 function load() {
26 // arrowscrollbox provides a helper ensureElementIsVisible method
27 document.getElementById("asb").ensureElementIsVisible(document.getElementById("asb1"), false);
29 // scrollbox doesn't provide that, so we have to do the heavy lifting directly
30 var sb = document.getElementById("sb");
31 var sb1 = document.getElementById("sb1");
32 var rect = sb.getBoundingClientRect();
33 var containerStart = rect.left;
34 var containerEnd = rect.right;
35 rect = sb1.getBoundingClientRect();
36 var elementStart = rect.left;
37 var elementEnd = rect.right;
39 var amountToScroll = 0;
40 if (elementStart < containerStart) {
41 amountToScroll = elementStart - containerStart;
42 } else if (elementEnd > containerEnd) {
43 amountToScroll = elementEnd - containerEnd;
44 }
45 sb.scrollLeft += amountToScroll;
47 document.documentElement.removeAttribute("class");
48 }
49 ]]>
50 </script>
52 </window>