]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix the following reproducible crash in a slightly different way (reported + initial...
authorPeter Penz <peter.penz19@gmail.com>
Wed, 27 Jun 2007 15:15:29 +0000 (15:15 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Wed, 27 Jun 2007 15:15:29 +0000 (15:15 +0000)
* Open Dolphin. Enable categorization.
* Split the view. Disable categorization on the right one.
* Join the views.

CCMAIL: ereslibre@gmail.com

svn path=/trunk/KDE/kdebase/apps/; revision=680956

src/dolphinmainwindow.cpp

index 98a91327f39f1edf7ac0b5a2265f1239aff4cf3f..3e22ba1d34db0947241866dcb3a7bfa0c301b1f6 100644 (file)
@@ -390,11 +390,17 @@ void DolphinMainWindow::openNewMainWindow()
 
 void DolphinMainWindow::toggleActiveView()
 {
 
 void DolphinMainWindow::toggleActiveView()
 {
-    if (m_activeViewContainer == m_viewContainer[PrimaryView]) {
-        setActiveViewContainer(m_viewContainer[SecondaryView]);
-    } else {
-        setActiveViewContainer(m_viewContainer[PrimaryView]);
+    if (m_viewContainer[SecondaryView] == 0) {
+        // only one view is available
+        return;
     }
     }
+
+    Q_ASSERT(m_activeViewContainer != 0);
+    Q_ASSERT(m_viewContainer[PrimaryView] != 0);
+
+    DolphinViewContainer* left  = m_viewContainer[PrimaryView];
+    DolphinViewContainer* right = m_viewContainer[SecondaryView];
+    setActiveViewContainer(m_activeViewContainer == right ? left : right);
 }
 
 void DolphinMainWindow::closeEvent(QCloseEvent* event)
 }
 
 void DolphinMainWindow::closeEvent(QCloseEvent* event)
@@ -1040,8 +1046,9 @@ void DolphinMainWindow::init()
 
 void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* view)
 {
 
 void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* view)
 {
+    Q_ASSERT(view != 0);
     Q_ASSERT((view == m_viewContainer[PrimaryView]) || (view == m_viewContainer[SecondaryView]));
     Q_ASSERT((view == m_viewContainer[PrimaryView]) || (view == m_viewContainer[SecondaryView]));
-    if (m_activeViewContainer == view || !view) {
+    if (m_activeViewContainer == view) {
         return;
     }
 
         return;
     }