diff options
Diffstat (limited to 'src/tabwindow')
-rw-r--r-- | src/tabwindow/rekonqwindow.cpp | 4 | ||||
-rw-r--r-- | src/tabwindow/tabwidget.cpp | 7 | ||||
-rw-r--r-- | src/tabwindow/tabwidget.h | 3 |
3 files changed, 12 insertions, 2 deletions
diff --git a/src/tabwindow/rekonqwindow.cpp b/src/tabwindow/rekonqwindow.cpp index a14dcf15..0e6515bd 100644 --- a/src/tabwindow/rekonqwindow.cpp +++ b/src/tabwindow/rekonqwindow.cpp @@ -91,9 +91,11 @@ void RekonqWindow::init() l->addWidget(_splitter); - // fix focus handling setFocusProxy(_tabWidget); + + // signals + connect(_tabWidget, SIGNAL(closeWindow()), this, SLOT(close())); } // -------------------------------------------------------------------------------------------------- diff --git a/src/tabwindow/tabwidget.cpp b/src/tabwindow/tabwidget.cpp index 322c45e1..bdc7a47a 100644 --- a/src/tabwindow/tabwidget.cpp +++ b/src/tabwindow/tabwidget.cpp @@ -621,7 +621,12 @@ void TabWidget::closeTab(int index, bool del) // what to do if there is just one tab... if (count() == 1) { - kDebug() << "CANNOT CLOSE WINDOW FROM HERE..."; + if (ReKonfig::lastTabClosesWindow()) + { + emit closeWindow(); + return; + } + currentWebWindow()->load(KUrl("about:home")); return; } diff --git a/src/tabwindow/tabwidget.h b/src/tabwindow/tabwidget.h index 9c79df11..2718904c 100644 --- a/src/tabwindow/tabwidget.h +++ b/src/tabwindow/tabwidget.h @@ -86,6 +86,9 @@ public Q_SLOTS: void loadUrl(const KUrl &, Rekonq::OpenType type = Rekonq::CurrentTab, TabHistory *history = 0); void newTab(WebPage *page = 0); +Q_SIGNALS: + void closeWindow(); + private: /** * Prepares the new WebWindow to be open |