[prev in list] [next in list] [prev in thread] [next in thread]
List: kfm-devel
Subject: Re: patch + examples, change frameset.rows from js
From: <koos.vriezen () xs4all ! nl>
Date: 2001-12-23 14:49:51
[Download RAW message or body]
> Another setChanged(false) before the next return; was missing, fixed.
>
> > Probably the change from
> > 'd->m_doc->updateRendering()' to
> > 'DocumentImpl::updateDocumentsRendering()'
> > should be done on more places where js is executed.
>
> Right - did that too, to fix the "strange KJS-frames" report on this list.
>
> Thanks for the patch!
> Please update from CVS and test if the current version still works for
> your frameset.rows case (I haven't tested that one).
My examples work, but (like mentioned in 'Very slow konqy / khtml on
www.freshmeat.net' posting, it seems to have trouble removing nodes from
changeNodes.
You didn't use m_docChanged but m_changed. Wouldn't this trigger a
applyChanges on a whole document?
Does a call to setChanged on a DocumentImpl node, add this node twice to
changedNodes? (Maybe QList is smart enough for not adding thing twice)
void DocumentImpl::setChanged(bool b)
{
if (b)
--> changedNodes.append(this);
else
changedNodes.remove(this);
if (!changedDocuments)
changedDocuments = s_changedDocumentsDeleter.setObject( new
QList<DocumentImpl>() );
if (b && !changed())
changedDocuments->append(this);
else if (!b && changed())
changedDocuments->remove(this);
--> NodeBaseImpl::setChanged(b);
}
void NodeImpl::setChanged(bool b)
{
if (b && !attached()) // changed compared to what?
return;
if (b && !changed() && ownerDocument())
{
---> ownerDocument()->changedNodes.append(this);
if ( this != ownerDocument() )
ownerDocument()->setChanged(b);
}
else if (!b && changed() && ownerDocument())
ownerDocument()->changedNodes.remove(this);
m_changed = b;
}
Regards,
Koos Vriezen
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic