diff options
Diffstat (limited to 'layout/reftests/bugs/508816-1-ref.xul')
-rw-r--r-- | layout/reftests/bugs/508816-1-ref.xul | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/layout/reftests/bugs/508816-1-ref.xul b/layout/reftests/bugs/508816-1-ref.xul new file mode 100644 index 000000000..7e86aadbf --- /dev/null +++ b/layout/reftests/bugs/508816-1-ref.xul @@ -0,0 +1,52 @@ +<?xml version="1.0"?> +<!DOCTYPE window> +<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"> + +<hbox style="max-width: 200px; border: 1px solid red;"> +<scrollbox id="sb" align="start" pack="start" orient="horizontal" flex="1"> + <button id="sb1" label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/> +</scrollbox> +</hbox> + +<hbox style="max-width: 200px; border: 1px solid blue"> +<arrowscrollbox id="asb" align="start" pack="start" orient="horizontal" flex="1"> + <button id="asb1" label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/> +</arrowscrollbox> +</hbox> + +<hbox style="max-width: 200px; border: 1px solid black"> +<hbox align="end" pack="end" flex="1"> + <button label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/> +</hbox> +</hbox> + +<script type="text/javascript"> + <![CDATA[ + function load() { + // arrowscrollbox provides a helper ensureElementIsVisible method + document.getElementById("asb").ensureElementIsVisible(document.getElementById("asb1"), false); + + // scrollbox doesn't provide that, so we have to do the heavy lifting directly + var sb = document.getElementById("sb"); + var sb1 = document.getElementById("sb1"); + var rect = sb.getBoundingClientRect(); + var containerStart = rect.left; + var containerEnd = rect.right; + rect = sb1.getBoundingClientRect(); + var elementStart = rect.left; + var elementEnd = rect.right; + + var amountToScroll = 0; + if (elementStart < containerStart) { + amountToScroll = elementStart - containerStart; + } else if (elementEnd > containerEnd) { + amountToScroll = elementEnd - containerEnd; + } + sb.scrollLeft += amountToScroll; + + document.documentElement.removeAttribute("class"); + } + ]]> +</script> + +</window> |