SVN commit 1021168 by dfaure: Backport 1021167: remove part from m_mapViews before actually deleting it (which can lead to a mouse-over-url event which is then sent to all views in the map). Many thanks to lemma for the analysis of the problem. (BUGS 200181, 184604) M +4 -3 konqviewmanager.cpp --- branches/KDE/4.3/kdebase/apps/konqueror/src/konqviewmanager.cpp #1021167:1021168 @@ -391,8 +391,6 @@ if (currentFrame->asQWidget() == m_tabContainer->currentWidget()) setActivePart(0); - m_tabContainer->childFrameRemoved(currentFrame); - const QList viewList = KonqViewCollector::collect(currentFrame); foreach ( KonqView* view, viewList ) { @@ -402,6 +400,8 @@ delete view; } + m_tabContainer->childFrameRemoved(currentFrame); + delete currentFrame; m_tabContainer->slotCurrentChanged(m_tabContainer->currentIndex()); @@ -559,12 +559,13 @@ grandParentSplitterSizes = grandParentKonqFrameContainer->sizes(); } + m_pMainWindow->removeChildView(view); + grandParentContainer->replaceChildFrame(parentContainer, otherFrame); //kDebug(1202) << "--- Removing otherFrame from parentContainer"; parentContainer->childFrameRemoved( otherFrame ); - m_pMainWindow->removeChildView(view); //kDebug(1202) << "--- Deleting view" << view; delete view; // This deletes the view, which deletes the part, which deletes its widget