Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:alarrosa:branches:KDE:Applications
konsole
0001-Fix-MainWindow-size-when-there-is-no-saved...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Fix-MainWindow-size-when-there-is-no-saved-size.patch of Package konsole
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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor