From afc732d220b66130e23faebdefb3d014ee474022 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 27 Jun 2007 15:15:29 +0000 Subject: [PATCH] Fix the following reproducible crash in a slightly different way (reported + initial fix done by Rafael): * 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 | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 98a91327f..3e22ba1d3 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -390,11 +390,17 @@ void DolphinMainWindow::openNewMainWindow() 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) @@ -1040,8 +1046,9 @@ void DolphinMainWindow::init() void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* view) { + Q_ASSERT(view != 0); Q_ASSERT((view == m_viewContainer[PrimaryView]) || (view == m_viewContainer[SecondaryView])); - if (m_activeViewContainer == view || !view) { + if (m_activeViewContainer == view) { return; } -- 2.47.3