From 3b08f674e3f771b49370edb144dab0958c8cf721 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 31 Aug 2021 08:59:54 +0100 Subject: gentoo resync : 31.08.2021 --- ...ionFinished-only-in-TabbedNavigation-mode.patch | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 kde-apps/konsole/files/konsole-21.04.3-emit-empty-in-SessionFinished-only-in-TabbedNavigation-mode.patch (limited to 'kde-apps/konsole/files/konsole-21.04.3-emit-empty-in-SessionFinished-only-in-TabbedNavigation-mode.patch') diff --git a/kde-apps/konsole/files/konsole-21.04.3-emit-empty-in-SessionFinished-only-in-TabbedNavigation-mode.patch b/kde-apps/konsole/files/konsole-21.04.3-emit-empty-in-SessionFinished-only-in-TabbedNavigation-mode.patch new file mode 100644 index 000000000000..d02846ace5aa --- /dev/null +++ b/kde-apps/konsole/files/konsole-21.04.3-emit-empty-in-SessionFinished-only-in-TabbedNavigation-mode.patch @@ -0,0 +1,53 @@ +From 2684bc7fa5ac0b740b3e8661c3a0ae0136fde0a7 Mon Sep 17 00:00:00 2001 +From: Ahmad Samir +Date: Sun, 22 Aug 2021 20:02:52 +0200 +Subject: [PATCH] Only emit empty() in SessionFinished() when in + TabbedNavigation mode + +empty() is emitted so that MainWindow calls close() and we get rid of the +colours-flashing bug when closing the last session/tab in a window, see +commit bbec72250d080. However all that isn't relevant when we are in +konsole Part mode, where there are no tabs or MainWindows. + +This fixes a crash in Dolphin when closing its window while the embedded +Konsole Part is open. The crash would happen as calling +ViewContainer::currentTabViewCount() would end up in the ViewSplitter code +path, which is no-op in Konsole Part. + +To test: +- Open dolphin, make sure the terminal panel isn't open to begin with +- open the terminal panel +- close the dolphin window while the terminal panel is open + +BUG: 441206 +FIXED-IN: 21.08.1 +--- + src/ViewManager.cpp | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/src/ViewManager.cpp b/src/ViewManager.cpp +index 92d2951fc..2ba77e9f0 100644 +--- a/src/ViewManager.cpp ++++ b/src/ViewManager.cpp +@@ -494,11 +494,13 @@ void ViewManager::sessionFinished() + return; + } + +- // The last session/tab, and only one view (no splits), emit empty() +- // so that close() is called in MainWindow, fixes #432077 +- if (_viewContainer->count() == 1 && _viewContainer->currentTabViewCount() == 1) { +- Q_EMIT empty(); +- return; ++ if (_navigationMethod == TabbedNavigation) { ++ // The last session/tab, and only one view (no splits), emit empty() ++ // so that close() is called in MainWindow, fixes #432077 ++ if (_viewContainer->count() == 1 && _viewContainer->currentTabViewCount() == 1) { ++ Q_EMIT empty(); ++ return; ++ } + } + + auto *session = qobject_cast(sender()); +-- +GitLab + -- cgit v1.2.3