diff.txt   [plain text]


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;