[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