From: Peter Penz Date: Thu, 8 Jul 2010 19:46:56 +0000 (+0000) Subject: Forward port of SVN commit 1147596: Skip redirection URLs when going back or forward... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/42ba5dfd4b88bf2574d9edde60c7b57d87881ea5 Forward port of SVN commit 1147596: Skip redirection URLs when going back or forward in history (otherwise going back won't be possible for the user, as a redirection will occur again). CCBUG: 212293 svn path=/trunk/KDE/kdebase/apps/; revision=1147597 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 4eef2fad5..f6f4e5eee 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -830,7 +830,15 @@ void DolphinMainWindow::replaceLocation() void DolphinMainWindow::goBack() { clearStatusBar(); - m_activeViewContainer->urlNavigator()->goBack(); + + KUrlNavigator* urlNavigator = m_activeViewContainer->urlNavigator(); + urlNavigator->goBack(); + + if (urlNavigator->locationState().isEmpty()) { + // An empty location state indicates a redirection URL, + // which must be skipped too + urlNavigator->goBack(); + } } void DolphinMainWindow::goForward() diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index fa6841538..28ffc23e4 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -433,7 +433,13 @@ void DolphinViewContainer::redirect(const KUrl& oldUrl, const KUrl& newUrl) Q_UNUSED(oldUrl); const bool block = m_urlNavigator->signalsBlocked(); m_urlNavigator->blockSignals(true); + + // Assure that the location state is reset for redirection URLs. This + // allows to skip redirection URLs when going back or forward in the + // URL history. + m_urlNavigator->saveLocationState(QByteArray()); m_urlNavigator->setLocationUrl(newUrl); + m_urlNavigator->blockSignals(block); }