diff --git a/sublime/container.cpp b/sublime/container.cpp --- a/sublime/container.cpp +++ b/sublime/container.cpp @@ -505,14 +505,12 @@ void Container::setCurrentWidget(QWidget* w) { - d->stack->setCurrentWidget(w); - //prevent from emitting activateView() signal on tabbar active tab change - //this function is called from MainWindow::activateView() - //which does the activation without any additional signals - { - QSignalBlocker blocker(d->tabBar); - d->tabBar->setCurrentIndex(d->stack->indexOf(w)); + + if (d->stack->currentWidget() == w) { + return; } + d->stack->setCurrentWidget(w); + d->tabBar->setCurrentIndex(d->stack->indexOf(w)); if (View* view = viewForWidget(w)) { statusChanged(view); diff --git a/sublime/mainwindow.cpp b/sublime/mainwindow.cpp --- a/sublime/mainwindow.cpp +++ b/sublime/mainwindow.cpp @@ -187,7 +187,7 @@ void MainWindow::activateView(Sublime::View* view, bool focus) { - if (!d->viewContainers.contains(view)) + if (!d->viewContainers.contains(view) || d->activeView == view) return; d->viewContainers[view]->setCurrentWidget(view->widget());