Bug 439339 - Konsole window doesn't honor Initial terminal size columns setting
Summary: Konsole window doesn't honor Initial terminal size columns setting
Status: CONFIRMED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: master
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2021-06-30 15:28 UTC by Andrey
Modified: 2021-08-13 21:43 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey 2021-06-30 15:28:52 UTC
SUMMARY
If "Remember window size" tick is disabled, the window width is always the same despite the actual Initial terminal size columns setting in Profile.

STEPS TO REPRODUCE
1. Disable "Remember window size" tick in Settings
2. Open new Konsole window

OBSERVED RESULT
Only row number correspond to the settings.
Columns amount is always the same whatever amount is set (289 here)

EXPECTED RESULT
Both columns and rows numbers should correspond to the settings.

SOFTWARE/OS VERSIONS
Operating System: Ubuntu 21.04
KDE Plasma Version: 5.22.80
KDE Frameworks Version: 5.84.0
Qt Version: 5.15.2
Graphics Platform: X11
Comment 1 groot 2021-07-02 21:37:49 UTC
Can't reproduce with:

OS: FreeBSD 13
Plasma: 5.21.1
Frameworks: 5.82.0
Qt version: 5.15.2
Graphics: X11

I have my **default** profile (called "shell"; that's not the default konsole profile which is called "Default [read-only]") set to 81x44. *Remember window size* is off in *Settings* -> *Configure Konsole* -> *General*.

On the other hand, if I turn **on** remember window size, then all my konsole windows are 43x1 rather than the "remembered" window size. That's a different issue, though.
Comment 2 Andrey 2021-07-03 13:21:21 UTC
Thanks.
I've retested and still see the issue here on master:
whatever Profile is set, I get 289 columns on start regardless what set in there: (127 in Profile1, 110 in Profiles 2 and 3).
But row amount is honored.

"Remember window size" is not set and last used size is not saved.

BUT you gave me idea and I tried to reproduce it on Neon, and couldn't.
Still Neon build doesn't include konsole sizing patch we've merged recently:
https://bugs.kde.org/show_bug.cgi?id=437791
I'll wait until it get to Neon and retest.
If still no go, probably it's signal that something broken in my build, maybe it's time to reinstall..
Comment 3 Bug Janitor Service 2021-07-18 04:33:35 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 4 Andrey 2021-07-26 12:35:41 UTC
Tomaz, do you have an idea about the reason?
Can it be because my Qt 5 is unpatched or something?
Comment 5 Andrey 2021-07-27 09:13:53 UTC
Seems we regressed it - was able to reproduce on neon-unstable-20210725-0328.iso
Comment 6 groot 2021-07-27 10:54:05 UTC
## Neon user 20210725

- boot machine (in vbox, starts in 1024x768)
- alt-space, "konsole", enter
- konsole starts as 53x1
- resize konsole to 80x24, type "exit", enter
- alt-space, "konsole", enter
- konsole comes up in the just-used size
- *Settings* > *Configure Konsole* > *General* tab > uncheck *Remember window size*, click *OK*
- alt-space, "konsole", enter
- comes up as 110x28
- resize to 80x31, type "exit", enter
- alt-space, "konsole", enter
- comes up as 110x28 (this is expected, because "remember" is unchecked)
- *Settings* > *Edit current profile* (it says 110x28)
- Change the window size to 80x31, click *Apply*, *OK*
- close konsole and start it again .. comes up 110x28
- *Settings* > *Edit current profile* (it **still** says 110x28)
- Click *Settings* > *Switch profile* and notice there are now *Default*, *Profile 1* and 3 times *Profile 2* in the menu
- Restart konsole, now there's only 3 profiles in the menu

Note that doing *Settings* > *Manage Profiles* shows the *Default* profile as "read-only", so it's not that surprising that it is not editable; setting a different profile as default makes konsole come up in the size entered there (e.g. 80x31).

## Neon unstable 20210725

konsole 21.07.70, frameworks 5.85.0

- konsole starts as 80x1
- resize, exit, restart: comes up in new size
- Edit profile (remember, creates new profile 1, set it to 80x31; the default profile says 110x28)
- Uncheck *Remember window size*
- Start konsole (with the default profile), comes up 124x28
- Start konsole (with Profile 1), comes up 124x31
Comment 7 Ahmad Samir 2021-07-29 18:01:31 UTC
Please test https://invent.kde.org/utilities/konsole/-/merge_requests/447
Comment 8 Kurt Hindenburg 2021-08-02 15:28:55 UTC
Git commit 090356661c92bfedeeeaf6f4f77d294facb3d8c6 by Kurt Hindenburg, on behalf of Ahmad Samir.
Committed on 02/08/2021 at 15:28.
Pushed by hindenburg into branch 'master'.

Fix KXmlGUI toolbars; and Konsole MainWindow size

Call setupGUI(), which will call createGUI (since we set the
KXmlGuiWindow::Create flag), omit the StatusBar flag since we don't have a
statusbar and don't want the "Show StatusBar" menu action.

TabbedViewContainer::sizeHint() calculates an optimum size for itself,
including the sizes of its child widgets; added in efb621d091c05f11 by
Mariusz Glebocki; following the code:
MainWindow creates a ViewManager
ViewManager creates a TabbedViewContainer and then a TerminalDisplay

which means that the first time TabbedViewContainer::sizeHint() is called
the TerminalDisplay widget size is 0, then TabbedViewContainer::sizeHint()
would return 0.

Which is why calling resize() in MainWindow was delayed to the showEvent(),
(and even delayed more by a QTimer::singleShot() call in Application),
at which point all the child widgets have been created and
MainWindow::sizeHint() (which logically takes into account the sizeHint()
of its child widgets) would return a sensible size.
Related: bug 436471, bug 430036

M  +12   -5    src/MainWindow.cpp

https://invent.kde.org/utilities/konsole/commit/090356661c92bfedeeeaf6f4f77d294facb3d8c6
Comment 9 Andrey 2021-08-02 15:59:44 UTC
Thanks! For some reason the patches were not marked as a fix? (I can't test it right now)
Comment 10 Ahmad Samir 2021-08-13 18:21:44 UTC
Git commit fb7f838fd3138a39aea3bcb2e91f923741587137 by Ahmad Samir.
Committed on 13/08/2021 at 18:21.
Pushed by ahmadsamir into branch 'cherry-pick-09035666'.

Fix KXmlGUI toolbars; and Konsole MainWindow size

Call setupGUI(), which will call createGUI (since we set the
KXmlGuiWindow::Create flag), omit the StatusBar flag since we don't have a
statusbar and don't want the "Show StatusBar" menu action.

TabbedViewContainer::sizeHint() calculates an optimum size for itself,
including the sizes of its child widgets; added in efb621d091c05f11 by
Mariusz Glebocki; following the code:
MainWindow creates a ViewManager
ViewManager creates a TabbedViewContainer and then a TerminalDisplay

which means that the first time TabbedViewContainer::sizeHint() is called
the TerminalDisplay widget size is 0, then TabbedViewContainer::sizeHint()
would return 0.

Which is why calling resize() in MainWindow was delayed to the showEvent(),
(and even delayed more by a QTimer::singleShot() call in Application),
at which point all the child widgets have been created and
MainWindow::sizeHint() (which logically takes into account the sizeHint()
of its child widgets) would return a sensible size.
Related: bug 436471, bug 430036


(cherry picked from commit 090356661c92bfedeeeaf6f4f77d294facb3d8c6)

M  +12   -5    src/MainWindow.cpp

https://invent.kde.org/utilities/konsole/commit/fb7f838fd3138a39aea3bcb2e91f923741587137
Comment 11 Bug Janitor Service 2021-08-13 18:22:05 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/konsole/-/merge_requests/457