commit:     f0b8fd584285365af19662391cbb62af44c039bf
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 18 07:18:16 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Aug 18 07:19:17 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f0b8fd58

kde-apps/konsole: Fix MainWindow size when there is no saved size

Upstream commit c78edfbac49852cec40efd5cbe73c341bc06c5ab

See also: https://mail.kde.org/pipermail/distributions/2021-August/001044.html

KDE-bug: https://bugs.kde.org/show_bug.cgi?id=437791
Bug: https://bugs.gentoo.org/808627
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...1.08.0-fix-MainWindow-size-w-o-saved-size.patch | 79 ++++++++++++++++++++++
 ...21.08.0-r2.ebuild => konsole-21.08.0-r3.ebuild} |  4 +-
 2 files changed, 81 insertions(+), 2 deletions(-)

diff --git 
a/kde-apps/konsole/files/konsole-21.08.0-fix-MainWindow-size-w-o-saved-size.patch
 
b/kde-apps/konsole/files/konsole-21.08.0-fix-MainWindow-size-w-o-saved-size.patch
new file mode 100644
index 00000000000..48fe1be666a
--- /dev/null
+++ 
b/kde-apps/konsole/files/konsole-21.08.0-fix-MainWindow-size-w-o-saved-size.patch
@@ -0,0 +1,79 @@
+From c78edfbac49852cec40efd5cbe73c341bc06c5ab Mon Sep 17 00:00:00 2001
+From: Ahmad Samir <[email protected]>
+Date: Thu, 29 Jul 2021 18:45:45 +0200
+Subject: [PATCH] Fix MainWindow size when there is no saved size
+
+The very first time a user runs Konsole, where is no konsolerc file in $HOME,
+there is no saved size to restore, instead use the sizeHint(), which ideally
+will be the size set in the default profile (based on lines/columns setting).
+
+CCBUG: 437791
+---
+ src/MainWindow.cpp | 21 +++++++++++++++------
+ src/MainWindow.h   |  1 +
+ 2 files changed, 16 insertions(+), 6 deletions(-)
+
+diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
+index a4b36b61d..9b025c8fe 100644
+--- a/src/MainWindow.cpp
++++ b/src/MainWindow.cpp
+@@ -70,13 +70,22 @@ MainWindow::MainWindow() :
+     _menuBarInitialVisibility(true),
+     _menuBarInitialVisibilityApplied(false)
+ {
+-    if (!KonsoleSettings::saveGeometryOnExit()) {
++    KSharedConfigPtr konsoleConfig = 
KSharedConfig::openConfig(QStringLiteral("konsolerc"));
++    KConfigGroup cg = konsoleConfig->group(QStringLiteral("MainWindow"));
++    const bool isGroup = cg.exists();
++    if (isGroup) {
++        const QString stateConfig = cg.readEntry(QStringLiteral("State"));
++
++        // If "stateConfig" is empty then this is the very first run,
++        // i.e. no konsolerc file in $HOME
++        _isSavedUiState = !stateConfig.isEmpty();
++    }
++
++    if (isGroup && !KonsoleSettings::saveGeometryOnExit()) {
+         // If we are not using the global Konsole save geometry on exit,
+         // remove all geometry data from [MainWindow] in Konsolerc, so KWin 
will
+         // manage it directly
+-        KSharedConfigPtr konsoleConfig = 
KSharedConfig::openConfig(QStringLiteral("konsolerc"));
+-        KConfigGroup group = konsoleConfig->group("MainWindow");
+-        QMap<QString, QString> configEntries = group.entryMap();
++        QMap<QString, QString> configEntries = cg.entryMap();
+         QMapIterator<QString, QString> i(configEntries);
+ 
+         while (i.hasNext()) {
+@@ -93,7 +102,7 @@ MainWindow::MainWindow() :
+                 || i.key().contains(QLatin1String(" YPosition"))
+ #endif
+             ) {
+-                group.deleteEntry(i.key());
++                cg.deleteEntry(i.key());
+             }
+         }
+     }
+@@ -949,7 +958,7 @@ void MainWindow::showEvent(QShowEvent *event)
+         _menuBarInitialVisibilityApplied = true;
+     }
+ 
+-    if (!KonsoleSettings::saveGeometryOnExit()) {
++    if (!_isSavedUiState || !KonsoleSettings::saveGeometryOnExit()) {
+         // Delay resizing to here, so that the other parts of the UI
+         // (ViewManager, TabbedViewContainer, TerminalDisplay ... etc)
+         // have been created and TabbedViewContainer::sizeHint() returns
+diff --git a/src/MainWindow.h b/src/MainWindow.h
+index a80674012..876a81d71 100644
+--- a/src/MainWindow.h
++++ b/src/MainWindow.h
+@@ -200,6 +200,7 @@ private:
+     bool _menuBarInitialVisibility;
+     bool _menuBarInitialVisibilityApplied;
+     bool _blurEnabled = false;
++    bool _isSavedUiState = false;
+ };
+ }
+ 
+-- 
+GitLab
+

diff --git a/kde-apps/konsole/konsole-21.08.0-r2.ebuild 
b/kde-apps/konsole/konsole-21.08.0-r3.ebuild
similarity index 94%
rename from kde-apps/konsole/konsole-21.08.0-r2.ebuild
rename to kde-apps/konsole/konsole-21.08.0-r3.ebuild
index 00032973af8..fe8cab4b97f 100644
--- a/kde-apps/konsole/konsole-21.08.0-r2.ebuild
+++ b/kde-apps/konsole/konsole-21.08.0-r3.ebuild
@@ -53,8 +53,8 @@ RDEPEND="${DEPEND}"
 PATCHES=(
        "${FILESDIR}/${PN}-21.04.3-no-flash-on-session-close.patch" # bug 807933
        "${FILESDIR}/${P}-fix-crash-w-blur.patch" # bug 807905, fixed in 21.08.1
-       # KDE-bugs 430036, 439339; backport pending for 21.08 branch
-       "${FILESDIR}/${P}-fix-KXmlGUI-toolbars-and-MainWindow-size.patch"
+       "${FILESDIR}/${P}-fix-KXmlGUI-toolbars-and-MainWindow-size.patch" # 
KDE-bugs 430036, 439339
+       "${FILESDIR}/${P}-fix-MainWindow-size-w-o-saved-size.patch" # KDE-bug 
437791
 )
 
 src_configure() {

Reply via email to