summaryrefslogtreecommitdiff
path: root/kde-apps/konsole/files/konsole-21.08.0-fix-MainWindow-size-w-o-saved-size.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-apps/konsole/files/konsole-21.08.0-fix-MainWindow-size-w-o-saved-size.patch')
-rw-r--r--kde-apps/konsole/files/konsole-21.08.0-fix-MainWindow-size-w-o-saved-size.patch79
1 files changed, 79 insertions, 0 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 000000000000..48fe1be666af
--- /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 <a.samirh78@gmail.com>
+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
+