From 498d40d06949aad51280fe928eee1f933b68130d Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Fri, 19 Jan 2018 06:54:41 +0100 Subject: [PATCH 1/2] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- plugins/scenes/opengl/opengl.json | 1 + plugins/scenes/qpainter/qpainter.json | 1 + plugins/scenes/xrender/xrender.json | 1 + scripts/minimizeall/metadata.desktop | 1 + 4 files changed, 4 insertions(+) diff --git a/plugins/scenes/opengl/opengl.json b/plugins/scenes/opengl/opengl.json index dda50e214c..d0bb2131e5 100644 --- a/plugins/scenes/opengl/opengl.json +++ b/plugins/scenes/opengl/opengl.json @@ -8,6 +8,7 @@ "Description[es]": "Complemento compositor de KWin renderizando mediante OpenGL", "Description[fi]": "OpenGL:llä hahmontava KWin-koostajaliitännäinen", "Description[fr]": "Module du compositeur KWin effectuant le rendu avec OpenGL", + "Description[gl]": "Complemento de compositor de KWin que renderiza a través de OpenGL.", "Description[it]": "Estensione del compositore di KWin per la resa tramite OpenGL", "Description[ko]": "OpenGL로 렌더링하는 KWin 컴포지터 플러그인", "Description[nl]": "KWin-compositor-plug-in rendering via OpenGL", diff --git a/plugins/scenes/qpainter/qpainter.json b/plugins/scenes/qpainter/qpainter.json index cb7f369002..d2c1179efa 100644 --- a/plugins/scenes/qpainter/qpainter.json +++ b/plugins/scenes/qpainter/qpainter.json @@ -10,6 +10,7 @@ "Description[es]": "Complemento compositor de KWin renderizando mediante QPainter", "Description[fi]": "QPainterillä hahmontava KWin-koostajaliitännäinen", "Description[fr]": "Module du compositeur KWin effectuant le rendu avec QPainter", + "Description[gl]": "Complemento de compositor de KWin que renderiza a través de QPainter.", "Description[it]": "Estensione del compositore di KWin per la resa tramite QPainter", "Description[ko]": "QPainter로 렌더링하는 KWin 컴포지터 플러그인", "Description[nl]": "KWin-compositor-plug-in rendering via QPainter", diff --git a/plugins/scenes/xrender/xrender.json b/plugins/scenes/xrender/xrender.json index 21cef3fc7a..1d603655bd 100644 --- a/plugins/scenes/xrender/xrender.json +++ b/plugins/scenes/xrender/xrender.json @@ -10,6 +10,7 @@ "Description[es]": "Complemento compositor de KWin renderizando mediante XRender", "Description[fi]": "XRenderillä hahmontava KWin-koostajaliitännäinen", "Description[fr]": "Module du compositeur KWin effectuant le rendu avec XRender", + "Description[gl]": "Complemento de compositor de KWin que renderiza a través de XRender.", "Description[it]": "Estensione del compositore di KWin per la resa tramite XRender", "Description[ko]": "XRender로 렌더링하는 KWin 컴포지터 플러그인", "Description[nl]": "KWin-compositor-plug-in rendering via XRender", diff --git a/scripts/minimizeall/metadata.desktop b/scripts/minimizeall/metadata.desktop index e351379e95..edaa3ce54a 100644 --- a/scripts/minimizeall/metadata.desktop +++ b/scripts/minimizeall/metadata.desktop @@ -45,6 +45,7 @@ Comment[ca@valencia]=Afig una drecera per a minimitzar i restaurar totes les fin Comment[de]=Fügt einen Kurzbefehl hinzu, um alle Fenster zu minimieren oder wieder anzuzeigen Comment[en_GB]=Adds a shortcut to minimise and restore all windows Comment[es]=Añade un acceso rápido para minimizar y restaurar todas la ventanas +Comment[gl]=Engade un atallo para minimizar e restaurar todas as xanelas. Comment[it]=Aggiunge una scorciatoia per minimizzare e ripristinare tutte le finestre Comment[nl]=Voegt een sneltoets toe om alle vensters te minimaliseren en te herstellen Comment[pl]=Dodaje skrót do zminimalizowania i przywracania wszystkich okien From 0d2a34172357c016f74f5374e6db1785e7739f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Fl=C3=B6ser?= Date: Sun, 21 Jan 2018 11:13:28 +0100 Subject: [PATCH 2/2] [autotests/integration] Add test for broken quick tiling for xdg_shell See also D9980. CCBUG: 388072 --- autotests/integration/kwin_wayland_test.h | 1 + autotests/integration/quick_tiling_test.cpp | 66 +++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/autotests/integration/kwin_wayland_test.h b/autotests/integration/kwin_wayland_test.h index 82e0fc25ad..6d95fe4dcc 100644 --- a/autotests/integration/kwin_wayland_test.h +++ b/autotests/integration/kwin_wayland_test.h @@ -132,6 +132,7 @@ enum class ShellSurfaceType { QObject *createShellSurface(ShellSurfaceType type, KWayland::Client::Surface *surface, QObject *parent = nullptr); KWayland::Client::ShellSurface *createShellSurface(KWayland::Client::Surface *surface, QObject *parent = nullptr); KWayland::Client::XdgShellSurface *createXdgShellV5Surface(KWayland::Client::Surface *surface, QObject *parent = nullptr); +KWayland::Client::XdgShellSurface *createXdgShellV6Surface(KWayland::Client::Surface *surface, QObject *parent = nullptr); /** diff --git a/autotests/integration/quick_tiling_test.cpp b/autotests/integration/quick_tiling_test.cpp index 1984fabf83..7fb844c086 100644 --- a/autotests/integration/quick_tiling_test.cpp +++ b/autotests/integration/quick_tiling_test.cpp @@ -32,6 +32,7 @@ along with this program. If not, see . #include #include #include +#include #include #include @@ -67,6 +68,8 @@ private Q_SLOTS: void testQuickTilingKeyboardMove(); void testQuickTilingPointerMove_data(); void testQuickTilingPointerMove(); + void testQuickTilingPointerMoveXdgShell_data(); + void testQuickTilingPointerMoveXdgShell(); void testX11QuickTiling_data(); void testX11QuickTiling(); void testX11QuickTilingAfterVertMaximize_data(); @@ -430,6 +433,69 @@ void QuickTilingTest::testQuickTilingPointerMove() QCOMPARE(quickTileChangedSpy.count(), 1); QTEST(c->quickTileMode(), "expectedMode"); + QTRY_COMPARE(sizeChangeSpy.count(), 1); +} + + +void QuickTilingTest::testQuickTilingPointerMoveXdgShell_data() +{ + QTest::addColumn("targetPos"); + QTest::addColumn("expectedMode"); + + QTest::newRow("topRight") << QPoint(2559, 24) << QuickTileMode(QuickTileFlag::Top | QuickTileFlag::Right); + QTest::newRow("right") << QPoint(2559, 512) << QuickTileMode(QuickTileFlag::Right); + QTest::newRow("bottomRight") << QPoint(2559, 1023) << QuickTileMode(QuickTileFlag::Bottom | QuickTileFlag::Right); + QTest::newRow("bottomLeft") << QPoint(0, 1023) << QuickTileMode(QuickTileFlag::Bottom | QuickTileFlag::Left); + QTest::newRow("Left") << QPoint(0, 512) << QuickTileMode(QuickTileFlag::Left); + QTest::newRow("topLeft") << QPoint(0, 24) << QuickTileMode(QuickTileFlag::Top | QuickTileFlag::Left); +} + +void QuickTilingTest::testQuickTilingPointerMoveXdgShell() +{ + using namespace KWayland::Client; + + QScopedPointer surface(Test::createSurface()); + QVERIFY(!surface.isNull()); + + QScopedPointer shellSurface(Test::createXdgShellV6Surface(surface.data())); + QVERIFY(!shellSurface.isNull()); + QSignalSpy configureRequestedSpy(shellSurface.data(), &XdgShellSurface::configureRequested); + QVERIFY(configureRequestedSpy.isValid()); + // let's render + auto c = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); + + QVERIFY(c); + QCOMPARE(workspace()->activeClient(), c); + QCOMPARE(c->geometry(), QRect(0, 0, 100, 50)); + QCOMPARE(c->quickTileMode(), QuickTileMode(QuickTileFlag::None)); + QCOMPARE(c->maximizeMode(), MaximizeRestore); + QVERIFY(configureRequestedSpy.wait()); + QCOMPARE(configureRequestedSpy.count(), 2); + + QSignalSpy quickTileChangedSpy(c, &AbstractClient::quickTileModeChanged); + QVERIFY(quickTileChangedSpy.isValid()); + + workspace()->performWindowOperation(c, Options::UnrestrictedMoveOp); + QCOMPARE(c, workspace()->getMovingClient()); + QCOMPARE(Cursor::pos(), QPoint(49, 24)); + QVERIFY(configureRequestedSpy.wait()); + QCOMPARE(configureRequestedSpy.count(), 3); + + QFETCH(QPoint, targetPos); + quint32 timestamp = 1; + kwinApp()->platform()->pointerMotion(targetPos, timestamp++); + kwinApp()->platform()->pointerButtonPressed(BTN_LEFT, timestamp++); + kwinApp()->platform()->pointerButtonReleased(BTN_LEFT, timestamp++); + QCOMPARE(Cursor::pos(), targetPos); + QVERIFY(!workspace()->getMovingClient()); + + QCOMPARE(quickTileChangedSpy.count(), 1); + QTEST(c->quickTileMode(), "expectedMode"); + QVERIFY(configureRequestedSpy.wait()); + QEXPECT_FAIL("", "BUG 388072", Continue); + QCOMPARE(configureRequestedSpy.count(), 4); + QEXPECT_FAIL("", "BUG 388072", Continue); + QCOMPARE(false, configureRequestedSpy.last().first().toSize().isEmpty()); } struct XcbConnectionDeleter