summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainview.cpp20
-rw-r--r--src/mainview.h2
2 files changed, 21 insertions, 1 deletions
diff --git a/src/mainview.cpp b/src/mainview.cpp
index beaf4e21..325afb4c 100644
--- a/src/mainview.cpp
+++ b/src/mainview.cpp
@@ -63,6 +63,7 @@ MainView::MainView(MainWindow *parent)
, m_addTabButton(0)
, m_currentTabIndex(0)
, m_parentWindow(parent)
+ , _lastClosedTab(0)
{
// setting tabbar
TabBar *tabBar = new TabBar(this);
@@ -100,6 +101,7 @@ MainView::~MainView()
{
delete _widgetBar;
delete m_addTabButton;
+ delete _lastClosedTab;
}
@@ -500,7 +502,10 @@ void MainView::closeTab(int index, bool del)
if (del)
{
- tabToClose->deleteLater();
+ if(_lastClosedTab)
+ _lastClosedTab->deleteLater();
+ _lastClosedTab = tabToClose;
+// tabToClose->deleteLater();
}
emit tabsChanged();
@@ -634,6 +639,19 @@ void MainView::openLastClosedTab()
return;
const HistoryItem item = m_recentlyClosedTabs.takeFirst();
+
+ // if there is a tab yet loaded, use it
+ if(_lastClosedTab)
+ {
+ addTab(_lastClosedTab, _lastClosedTab->view()->title() );
+ _widgetBar->addWidget(_lastClosedTab->urlBar());
+ updateTabBar();
+ emit tabsChanged();
+
+ _lastClosedTab = 0;
+ return;
+ }
+
Application::instance()->loadUrl(KUrl(item.url), Rekonq::NewTab);
}
diff --git a/src/mainview.h b/src/mainview.h
index 29162dd1..6ef40ac7 100644
--- a/src/mainview.h
+++ b/src/mainview.h
@@ -189,6 +189,8 @@ private:
QList<HistoryItem> m_recentlyClosedTabs;
MainWindow *m_parentWindow;
+
+ WebTab *_lastClosedTab;
};
#endif // MAINVIEW_H