[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdelibs/kmdi
From:       Falk Brettschneider <falk.brettschneider () gmx ! de>
Date:       2003-11-09 0:02:19
[Download RAW message or body]

CVS commit by falkbr: 

fixed crash in KDockManager destructor (IDEAl mode only)


  M +7 -2      kmdidockcontainer.cpp   1.51


--- kdelibs/kmdi/kmdidockcontainer.cpp  #1.50:1.51
@@ -100,5 +100,7 @@ KMdiDockContainer::KMdiDockContainer(QWi
 KMdiDockContainer::~KMdiDockContainer()
 {
-  for (QMap<KDockWidget*,int>::iterator it=m_map.begin();it!=m_map.end();++it) {
+  QMap<KDockWidget*,int>::iterator it;
+  while (m_map.count()) {
+        it = m_map.begin();
         KDockWidget *w=it.key();
           if (m_overlapButtons.contains(w)) {
@@ -106,4 +108,6 @@ KMdiDockContainer::~KMdiDockContainer()
             m_overlapButtons.remove(w);
           }
+    m_map.remove(w);
+    w->undock();
   }
         deactivated(this);
@@ -246,4 +250,5 @@ void KMdiDockContainer::removeWidget(KDo
   tabClicked(id);
   m_tb->removeTab(id);
+  m_ws->removeWidget(w);
   m_map.remove(w);
   m_revMap.remove(id);
@@ -633,5 +638,5 @@ void KMdiDockContainer::nextToolView() {
         if (pos==-1) return;
         pos++;
-        if (pos>=tabs->count()) pos=0;
+        if (pos>=(int)tabs->count()) pos=0;
         KMultiTabBarTab *tab=tabs->at(pos);
         if (!tab) return; //can never happen here, but who knows


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic