Index: khtml/khtml_part.cpp =================================================================== RCS file: /local/home/cvs/Labyrinth/WebCore/khtml/khtml_part.cpp,v retrieving revision 1.101 retrieving revision 1.101.6.1 diff -u -r1.101 khtml/khtml_part.cpp --- khtml/khtml_part.cpp 2002/12/21 01:56:42 1.101 +++ khtml_part.cpp 2003/01/14 21:23:55 1.101.6.1 @@ -501,11 +501,11 @@ if ( d->m_doc && d->m_doc->isHTMLDocument() ) { HTMLDocumentImpl* hdoc = static_cast<HTMLDocumentImpl*>( d->m_doc ); - if ( hdoc->body() && d->m_bLoadEventEmitted ) { + if ( hdoc->body() && d->m_bLoadEventEmitted && !d->m_bUnloadEventEmitted ) { hdoc->body()->dispatchWindowEvent( EventImpl::UNLOAD_EVENT, false, false ); if ( d->m_doc ) d->m_doc->updateRendering(); - d->m_bLoadEventEmitted = false; + d->m_bUnloadEventEmitted = true; } } @@ -1718,6 +1718,7 @@ } d->m_bLoadEventEmitted = true; + d->m_bUnloadEventEmitted = false; if (d->m_doc) d->m_doc->close(); } Index: khtml/khtmlpart_p.h =================================================================== RCS file: /local/home/cvs/Labyrinth/WebCore/khtml/khtmlpart_p.h,v retrieving revision 1.15 retrieving revision 1.15.6.1 diff -u -r1.15 khtml/khtmlpart_p.h --- khtml/khtmlpart_p.h 2002/12/17 08:08:55 1.15 +++ khtmlpart_p.h 2003/01/14 21:23:55 1.15.6.1 @@ -106,6 +106,7 @@ m_job = 0L; m_bComplete = true; m_bLoadEventEmitted = true; + m_bUnloadEventEmitted = true; m_cachePolicy = KIO::CC_Verify; m_manager = 0L; m_settings = new KHTMLSettings(*KHTMLFactory::defaultHTMLSettings()); @@ -251,6 +252,7 @@ bool m_bComplete:1; bool m_bLoadEventEmitted:1; + bool m_bUnloadEventEmitted:1; bool m_haveEncoding:1; bool m_bHTTPRefresh:1; bool m_onlyLocalReferences :1;