[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/khtml
From: Germain Garand <germain () ebooksfrance ! com>
Date: 2005-03-03 11:20:59
Message-ID: 20050303112059.720ED1751E () office ! kde ! org
[Download RAW message or body]
CVS commit by ggarand:
Mozilla/IE strict compatibility:
document.documentElement.scroll{Top,Left} concern the canvas, not the root block.
fix regression on linuxfr.org
BUG: 99380
M +7 -0 ChangeLog 1.394
M +30 -6 ecma/kjs_dom.cpp 1.186
--- kdelibs/khtml/ChangeLog #1.393:1.394
@@ -1,2 +1,9 @@
+2005-03-03 Germain Garand <germain@ebooksfrance.org>
+
+ * ecma/kjs_dom.cpp (getValueProperty/putValueProperty):
+ Mozilla/IE strict compatibility: document.documentElement.scroll{Top,Left}
+ concern the canvas, not the root block.
+ Cf. http://www.quirksmode.org/viewport/compatibility.html
+
2005-03-01 Allan Sandfeld Jensen <kde@carewolf.com>
--- kdelibs/khtml/ecma/kjs_dom.cpp #1.185:1.186
@@ -293,7 +293,17 @@ Value DOMNode::getValueProperty(ExecStat
return rend ? static_cast<Value>( Number(rend->scrollHeight()) ) : \
Undefined(); case ScrollLeft:
- return Number( rend && rend->layer() ? rend->layer()->scrollXOffset() : 0 );
+ if (rend && rend->layer()) {
+ if (rend->isRoot() && !rend->style()->hidesOverflow())
+ return Number( node.ownerDocument().view() ? \
node.ownerDocument().view()->contentsX() : 0); + return Number( \
rend->layer()->scrollXOffset() ); + }
+ return Number( 0 );
case ScrollTop:
- return Number( rend && rend->layer() ? rend->layer()->scrollYOffset() : 0 );
+ if (rend && rend->layer()) {
+ if (rend->isRoot() && !rend->style()->hidesOverflow())
+ return Number( node.ownerDocument().view() ? \
node.ownerDocument().view()->contentsY() : 0); + return Number( \
rend->layer()->scrollYOffset() ); + }
+ return Number( 0 );
default:
kdDebug(6070) << "WARNING: Unhandled token in DOMNode::getValueProperty : " << \
token << endl; @@ -394,12 +404,26 @@ void DOMNode::putValueProperty(ExecState
case ScrollTop: {
khtml::RenderObject *rend = node.handle() ? node.handle()->renderer() : 0L;
- if (rend && rend->layer() && rend->style()->hidesOverflow())
+ if (rend && rend->layer()) {
+ if (rend->style()->hidesOverflow())
rend->layer()->scrollToYOffset(value.toInt32(exec));
+ else if (rend->isRoot()) {
+ QScrollView* sview = node.ownerDocument().view();
+ if (sview)
+ sview->setContentsPos(sview->contentsX(), value.toInt32(exec));
+ }
+ }
break;
}
case ScrollLeft: {
khtml::RenderObject *rend = node.handle() ? node.handle()->renderer() : 0L;
- if (rend && rend->layer() && rend->style()->hidesOverflow())
+ if (rend && rend->layer()) {
+ if (rend->style()->hidesOverflow())
rend->layer()->scrollToXOffset(value.toInt32(exec));
+ else if (rend->isRoot()) {
+ QScrollView* sview = node.ownerDocument().view();
+ if (sview)
+ sview->setContentsPos(value.toInt32(exec), sview->contentsY());
+ }
+ }
break;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic