summaryrefslogtreecommitdiff
path: root/kde-plasma/kwin/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-11-11 10:37:33 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-11-11 10:37:33 +0000
commitc3c04796e8293edbfdf08cdf731b6c4c637fd307 (patch)
tree72a11b450e218d85b43c9e741d918da3bb5da1ef /kde-plasma/kwin/files
parent09829072bc77a99750fd01ac8b7e46c232b0f60e (diff)
gentoo auto-resync : 11:11:2023 - 10:37:33
Diffstat (limited to 'kde-plasma/kwin/files')
-rw-r--r--kde-plasma/kwin/files/kwin-5.27.9-xdgshellwindow-enforce-min-size.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/kde-plasma/kwin/files/kwin-5.27.9-xdgshellwindow-enforce-min-size.patch b/kde-plasma/kwin/files/kwin-5.27.9-xdgshellwindow-enforce-min-size.patch
new file mode 100644
index 000000000000..471a37a3e0bd
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.27.9-xdgshellwindow-enforce-min-size.patch
@@ -0,0 +1,71 @@
+From 0900264e6f538ff915186b1bd9e528e568b28c1d Mon Sep 17 00:00:00 2001
+From: Xaver Hugl <xaver.hugl@gmail.com>
+Date: Wed, 23 Aug 2023 21:51:18 +0200
+Subject: [PATCH] xdgshellwindow: enforce a minimum size for clients
+
+It doesn't make sense for a window to become 1x1 pixels small. When we have
+server side decorations we also know that the decoration takes a lot of
+space, so this commit enforces a bigger minimum size for decorated windows
+
+BUG: 469237
+
+
+(cherry picked from commit 28c27609a4b45cf08b53dcc7dfe90f23c3338797)
+---
+ autotests/integration/xdgshellwindow_test.cpp | 8 ++++----
+ src/xdgshellwindow.cpp | 3 ++-
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/autotests/integration/xdgshellwindow_test.cpp b/autotests/integration/xdgshellwindow_test.cpp
+index 70716e49434..53489a27f6b 100644
+--- a/autotests/integration/xdgshellwindow_test.cpp
++++ b/autotests/integration/xdgshellwindow_test.cpp
+@@ -375,12 +375,12 @@ void TestXdgShellWindow::testFullscreen()
+ QVERIFY(surfaceConfigureRequestedSpy.wait());
+
+ shellSurface->xdgSurface()->ack_configure(surfaceConfigureRequestedSpy.last().at(0).value<quint32>());
+- auto window = Test::renderAndWaitForShown(surface.get(), QSize(100, 50), Qt::blue);
++ auto window = Test::renderAndWaitForShown(surface.get(), QSize(500, 250), Qt::blue);
+ QVERIFY(window);
+ QVERIFY(window->isActive());
+ QCOMPARE(window->layer(), NormalLayer);
+ QVERIFY(!window->isFullScreen());
+- QCOMPARE(window->clientSize(), QSize(100, 50));
++ QCOMPARE(window->clientSize(), QSize(500, 250));
+ QCOMPARE(window->isDecorated(), decoMode == Test::XdgToplevelDecorationV1::mode_server_side);
+ QCOMPARE(window->clientSizeToFrameSize(window->clientSize()), window->size());
+
+@@ -417,14 +417,14 @@ void TestXdgShellWindow::testFullscreen()
+ QCOMPARE(surfaceConfigureRequestedSpy.count(), 4);
+ states = toplevelConfigureRequestedSpy.last().at(1).value<Test::XdgToplevel::States>();
+ QVERIFY(!(states & Test::XdgToplevel::State::Fullscreen));
+- QCOMPARE(toplevelConfigureRequestedSpy.last().at(0).value<QSize>(), QSize(100, 50));
++ QCOMPARE(toplevelConfigureRequestedSpy.last().at(0).value<QSize>(), QSize(500, 250));
+
+ shellSurface->xdgSurface()->ack_configure(surfaceConfigureRequestedSpy.last().at(0).value<quint32>());
+ Test::render(surface.get(), toplevelConfigureRequestedSpy.last().at(0).value<QSize>(), Qt::blue);
+
+ QVERIFY(fullScreenChangedSpy.wait());
+ QCOMPARE(fullScreenChangedSpy.count(), 2);
+- QCOMPARE(window->clientSize(), QSize(100, 50));
++ QCOMPARE(window->clientSize(), QSize(500, 250));
+ QVERIFY(!window->isFullScreen());
+ QCOMPARE(window->isDecorated(), decoMode == Test::XdgToplevelDecorationV1::mode_server_side);
+ QCOMPARE(window->layer(), NormalLayer);
+diff --git a/src/xdgshellwindow.cpp b/src/xdgshellwindow.cpp
+index 34201bdd05b..29d8623cac3 100644
+--- a/src/xdgshellwindow.cpp
++++ b/src/xdgshellwindow.cpp
+@@ -600,7 +600,8 @@ MaximizeMode XdgToplevelWindow::requestedMaximizeMode() const
+
+ QSizeF XdgToplevelWindow::minSize() const
+ {
+- return rules()->checkMinSize(m_shellSurface->minimumSize());
++ const int enforcedMinimum = m_nextDecoration ? 150 : 20;
++ return rules()->checkMinSize(QSize(std::max(enforcedMinimum, m_shellSurface->minimumSize().width()), std::max(enforcedMinimum, m_shellSurface->minimumSize().height())));
+ }
+
+ QSizeF XdgToplevelWindow::maxSize() const
+--
+GitLab
+