Bug 460428

Summary: Konsole's window sometimes is too small on start having a size of 24 x 7
Product: [Applications] konsole Reporter: postix <postix>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: normal CC: dyle71, nate
Priority: NOR    
Version: 22.08.2   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 22.12
Sentry Crash Report:
Attachments: kWin Support Info

Description postix 2022-10-14 12:25:30 UTC
Created attachment 152809 [details]
kWin Support Info

STEPS TO REPRODUCE
1. Open Konsole
2. Resize it to some useful size
3. Close Konsole
4. Reopen it

OBSERVED RESULT
Konsole opens always with the size 24x7

EXPECTED RESULT
Konsole opens with the last used size or at least with some size, which is useful.


SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20221012
KDE Plasma Version: 5.26.0
KDE Frameworks Version: 5.99.0
Qt Version: 5.15.6
Kernel Version: 6.0.0-1-default (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon RX 580 Series
Comment 1 Oliver Maurhart 2022-11-03 05:43:21 UTC
Same here but:

Operating System: kubuntu 22.10
KDE Plasma Version: 5.26.2
KDE Frameworks Version: 5.99.0
Qt Version: 5.15.6
Kernel Version: 5.19.0-23-generic (64-bit)
Graphics Platform: X11
Graphics Processor: NVIDIA GeForce GTX 1070/PCIe/SSE2
Comment 3 Vlad Zahorodnii 2022-11-15 10:02:20 UTC
Git commit 05892060f10d515f57460ef021bd2fb20c754ae7 by Vlad Zahorodnii.
Committed on 15/11/2022 at 09:02.
Pushed by vladz into branch 'master'.

Fix geometry restoration check

MainWindow::wasWindowGeometrySaved() doesn't take into account the currently connected outputs. So
when Konsole starts after hotplugging a new output, wasWindowGeometrySaved() will erroneously return
true and resize(sizeHint()) in MainWindow::showEvent() won't be called thus resulting in Konsole
starting with wrong size.

This change makes Konsole take the current output layout into account when deciding whether the
geometry has been restored (logic was copied from KWindowConfig), however it indicates that we have
some fundamental issues in KMainWindow or KWindowConfig as it's a really messy way to determine
whether the previous state has been properly restored.

M  +32   -2    src/MainWindow.cpp

https://invent.kde.org/utilities/konsole/commit/05892060f10d515f57460ef021bd2fb20c754ae7
Comment 4 Vlad Zahorodnii 2022-11-15 10:03:10 UTC
Git commit cc9073abdec8864a015bc20d2b94f4d55f456553 by Vlad Zahorodnii.
Committed on 15/11/2022 at 10:03.
Pushed by vladz into branch 'release/22.12'.

Fix geometry restoration check

MainWindow::wasWindowGeometrySaved() doesn't take into account the currently connected outputs. So
when Konsole starts after hotplugging a new output, wasWindowGeometrySaved() will erroneously return
true and resize(sizeHint()) in MainWindow::showEvent() won't be called thus resulting in Konsole
starting with wrong size.

This change makes Konsole take the current output layout into account when deciding whether the
geometry has been restored (logic was copied from KWindowConfig), however it indicates that we have
some fundamental issues in KMainWindow or KWindowConfig as it's a really messy way to determine
whether the previous state has been properly restored.


(cherry picked from commit 05892060f10d515f57460ef021bd2fb20c754ae7)

M  +32   -2    src/MainWindow.cpp

https://invent.kde.org/utilities/konsole/commit/cc9073abdec8864a015bc20d2b94f4d55f456553