diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2021-08-15 21:10:27 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2021-08-15 21:11:20 +0200 |
commit | a69ea70b1f7c6b56cde64cc2dc2604ecc19c4355 (patch) | |
tree | 29e1e4d0738413795ce89b751756c8f61c4a1ab4 /kde-apps/konsole | |
parent | sys-fs/eudev: stabilise 3.2.10-r1 with intltool dep dropped (diff) | |
download | gentoo-a69ea70b1f7c6b56cde64cc2dc2604ecc19c4355.tar.gz gentoo-a69ea70b1f7c6b56cde64cc2dc2604ecc19c4355.tar.bz2 gentoo-a69ea70b1f7c6b56cde64cc2dc2604ecc19c4355.zip |
kde-apps/konsole: Fix KXmlGUI toolbars and MainWindow size
Upstream commit fb7f838fd3138a39aea3bcb2e91f923741587137
See also:
https://invent.kde.org/utilities/konsole/-/merge_requests/457
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=430036
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=436471
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=439339
Reported-by: Lars Wendler <polynomial-c@gentoo.org>
Tested-by: Lars Wendler <polynomial-c@gentoo.org>
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-apps/konsole')
-rw-r--r-- | kde-apps/konsole/files/konsole-21.08.0-fix-KXmlGUI-toolbars-and-MainWindow-size.patch | 73 | ||||
-rw-r--r-- | kde-apps/konsole/konsole-21.08.0-r2.ebuild (renamed from kde-apps/konsole/konsole-21.08.0-r1.ebuild) | 2 |
2 files changed, 75 insertions, 0 deletions
diff --git a/kde-apps/konsole/files/konsole-21.08.0-fix-KXmlGUI-toolbars-and-MainWindow-size.patch b/kde-apps/konsole/files/konsole-21.08.0-fix-KXmlGUI-toolbars-and-MainWindow-size.patch new file mode 100644 index 000000000000..fc62466ea627 --- /dev/null +++ b/kde-apps/konsole/files/konsole-21.08.0-fix-KXmlGUI-toolbars-and-MainWindow-size.patch @@ -0,0 +1,73 @@ +From fb7f838fd3138a39aea3bcb2e91f923741587137 Mon Sep 17 00:00:00 2001 +From: Ahmad Samir <a.samirh78@gmail.com> +Date: Thu, 29 Jul 2021 18:44:07 +0200 +Subject: [PATCH] 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. + +CCBUG: 430036 +CCBUG: 439339 +BUG: 436471 + + +(cherry picked from commit 090356661c92bfedeeeaf6f4f77d294facb3d8c6) +--- + src/MainWindow.cpp | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp +index c67acf8b9..a4b36b61d 100644 +--- a/src/MainWindow.cpp ++++ b/src/MainWindow.cpp +@@ -131,8 +131,10 @@ MainWindow::MainWindow() : + // in terminal applications + KAcceleratorManager::setNoAccel(menuBar()); + +- // create menus +- createGUI(); ++ constexpr KXmlGuiWindow::StandardWindowOptions guiOpts = ToolBar | Keys | Save | Create; ++ const QString xmlFile = componentName() + QLatin1String("ui.rc"); // Typically "konsoleui.rc" ++ // The "Create" flag will make it call createGUI() ++ setupGUI(guiOpts, xmlFile); + + // remember the original menu accelerators for later use + rememberMenuAccelerators(); +@@ -945,9 +947,14 @@ void MainWindow::showEvent(QShowEvent *event) + menuBar()->setVisible(_menuBarInitialVisibility); + _toggleMenuBarAction->setChecked(_menuBarInitialVisibility); + _menuBarInitialVisibilityApplied = true; +- if (!KonsoleSettings::saveGeometryOnExit()) { +- resize(sizeHint()); +- } ++ } ++ ++ if (!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 ++ // a usuable size. ++ resize(sizeHint()); + } + + // Call parent method +-- +GitLab + diff --git a/kde-apps/konsole/konsole-21.08.0-r1.ebuild b/kde-apps/konsole/konsole-21.08.0-r2.ebuild index 4095d9ac5f9e..00032973af8f 100644 --- a/kde-apps/konsole/konsole-21.08.0-r1.ebuild +++ b/kde-apps/konsole/konsole-21.08.0-r2.ebuild @@ -53,6 +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" ) src_configure() { |