summaryrefslogtreecommitdiff
path: root/kde-apps/konsole/files/konsole-21.08.0-fix-KXmlGUI-toolbars-and-MainWindow-size.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-apps/konsole/files/konsole-21.08.0-fix-KXmlGUI-toolbars-and-MainWindow-size.patch')
-rw-r--r--kde-apps/konsole/files/konsole-21.08.0-fix-KXmlGUI-toolbars-and-MainWindow-size.patch73
1 files changed, 73 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
+