From: Manuel Nickschas Date: Wed, 18 Nov 2009 21:06:24 +0000 (+0100) Subject: Make sure to properly remove bufferViews from the overlay X-Git-Tag: 0.6-beta1~177 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=27df6b0c7c887318e1c79030886d582246bd8912 Make sure to properly remove bufferViews from the overlay --- diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 1191d88f..9030bfdd 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -469,6 +469,7 @@ void MainWin::removeBufferView(int bufferViewConfigId) { if(dock && actionData.toInt() == bufferViewConfigId) { removeAction(action); _bufferViews.removeAll(dock); + Client::bufferViewOverlay()->removeView(dock->bufferViewId()); dock->deleteLater(); } } @@ -479,6 +480,11 @@ void MainWin::bufferViewToggled(bool enabled) { Q_ASSERT(action); BufferViewDock *dock = qobject_cast(action->parent()); Q_ASSERT(dock); + + // Make sure we don't toggle backlog fetch for a view we've already removed + if(!_bufferViews.contains(dock)) + return; + if(enabled) { Client::bufferViewOverlay()->addView(dock->bufferViewId()); BufferViewConfig *config = dock->config(); @@ -776,6 +782,7 @@ void MainWin::disconnectedFromCore() { if(dock && actionData.toInt() != -1) { removeAction(action); _bufferViews.removeAll(dock); + Client::bufferViewOverlay()->removeView(dock->bufferViewId()); dock->deleteLater(); } }