From cbaaf3be5ae55db2bc5105c8d3e5ebf60530f828 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Thu, 26 Jan 2017 07:35:52 +0100 Subject: [PATCH 1/4] 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" --- packageplugins/scripts/kwin-packagestructure-scripts.desktop | 2 ++ .../windowswitcher/kwin-packagestructure-windowswitcher.desktop | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packageplugins/scripts/kwin-packagestructure-scripts.desktop b/packageplugins/scripts/kwin-packagestructure-scripts.desktop index f1bab3f5b7..50407642d8 100644 --- a/packageplugins/scripts/kwin-packagestructure-scripts.desktop +++ b/packageplugins/scripts/kwin-packagestructure-scripts.desktop @@ -4,6 +4,8 @@ Name[ca]=Script del KWin Name[ca@valencia]=Script del KWin Name[el]=Σενάριο KWin Name[en_GB]=KWin Script +Name[es]=Guion de KWin +Name[fi]=KWin-skripti Name[it]=Script di KWin Name[ko]=KWin 스크립트 Name[nl]=KWin-script diff --git a/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop b/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop index f40550f170..7ca437076b 100644 --- a/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop +++ b/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop @@ -4,6 +4,8 @@ Name[ca]=Commutador de finestres del KWin Name[ca@valencia]=Commutador de finestres del KWin Name[el]=Εφαρμογή εναλλαγής παραθύρων Kwin Name[en_GB]=KWin Window Switcher +Name[es]=Cambiador de ventanas de KWin +Name[fi]=KWin-ikkunanvalitsin Name[it]=Scambiafinestre di KWin Name[ko]=KWin 창 전환기 Name[nl]=KWin-vensterwisselaar From 7e54ec82a4b0d048a9d9f055a675cb81725648ca Mon Sep 17 00:00:00 2001 From: Jonathan Riddell Date: Thu, 26 Jan 2017 11:06:39 +0000 Subject: [PATCH 2/4] Update version number for 5.9.0 GIT_SILENT --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f595d64fd0..0a483d9448 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ project(KWIN) -set(PROJECT_VERSION "5.8.95") +set(PROJECT_VERSION "5.9.0") set(PROJECT_VERSION_MAJOR 5) cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) From 6cd42c9227f1ac81fdb1c7346daa0559438c1e4e Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sat, 28 Jan 2017 08:15:46 +0100 Subject: [PATCH 3/4] 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" --- kcmkwin/kwindesktop/desktop.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kcmkwin/kwindesktop/desktop.desktop b/kcmkwin/kwindesktop/desktop.desktop index f1147668a3..c08b04fa44 100644 --- a/kcmkwin/kwindesktop/desktop.desktop +++ b/kcmkwin/kwindesktop/desktop.desktop @@ -129,7 +129,7 @@ X-KDE-Keywords[et]=töölaud,töölauad,arv,virtuaalne töölaud,mitu töölauda X-KDE-Keywords[eu]=mahaigain,mahaigainak,kopuru,mahaigain birtuala,alegiazko mahaigaina,hainbat mahaigain,bilagailu,bilagailuaren trepeta,bilagailuaren miniaplikazioa,bilagailuaren ezarpenak X-KDE-Keywords[fi]=työpöytä,työpöydät,lukumäärä,virtuaalityöpöytä,monta työpöytää,sivutin,sivutinsovelma,sivuttimen asetukset X-KDE-Keywords[fr]=bureau, bureaux, numéro, bureau virtuel, bureaux multiples, gestionnaire de bureau, composant graphique du gestionnaire de bureau, paramètres du gestionnaire de bureaux -X-KDE-Keywords[gl]=escritorio,escritorios,número,escritorio virtual,escritorios múltiplos,paxinador, widget paxinador, applet paxinadora +X-KDE-Keywords[gl]=escritorio,escritorios,número,escritorio virtual,escritorios múltiplos,paxinador, trebello paxinador, applet paxinadora X-KDE-Keywords[hu]=asztal,asztalok,szám,virtuális asztal,több asztal,papír,papír felületi elem,papír kisalkalmazás,papírbeállítások X-KDE-Keywords[ia]=scriptorio,scriptorios,numero,scriptorio virtual,scriptorio multiple,pager, widget de pager, applet de pager, preferentias de pager X-KDE-Keywords[id]=desktop,desktop,jumlah,desktop virtual,banyak desktop,halaman,widget halaman,applet halaman,pengaturan halaman From a67f4dfa65ee2c7e6327dd1474fdc3b526e943b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Sun, 29 Jan 2017 14:01:15 +0100 Subject: [PATCH 4/4] [autotests] Add test case for resizing window manually During resize the signal clientStepUserMovedResized signal is not emitted for Wayland windows which causes the window geometry effect to not function. This change adds a test case highlighting the problem. --- .../integration/move_resize_window_test.cpp | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/autotests/integration/move_resize_window_test.cpp b/autotests/integration/move_resize_window_test.cpp index 54023c7ab8..078f82b873 100644 --- a/autotests/integration/move_resize_window_test.cpp +++ b/autotests/integration/move_resize_window_test.cpp @@ -57,6 +57,7 @@ private Q_SLOTS: void init(); void cleanup(); void testMove(); + void testResize(); void testPackTo_data(); void testPackTo(); void testPackAgainstClient_data(); @@ -195,6 +196,90 @@ void MoveResizeWindowTest::testMove() QVERIFY(Test::waitForWindowDestroyed(c)); } +void MoveResizeWindowTest::testResize() +{ + // a test case which manually resizes a window + using namespace KWayland::Client; + + QScopedPointer surface(Test::createSurface()); + QVERIFY(!surface.isNull()); + + QScopedPointer shellSurface(Test::createShellSurface(surface.data())); + QVERIFY(!shellSurface.isNull()); + QSignalSpy sizeChangeSpy(shellSurface.data(), &ShellSurface::sizeChanged); + QVERIFY(sizeChangeSpy.isValid()); + // let's render + auto c = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); + QSignalSpy surfaceSizeChangedSpy(shellSurface.data(), &ShellSurface::sizeChanged); + QVERIFY(surfaceSizeChangedSpy.isValid()); + + QVERIFY(c); + QCOMPARE(workspace()->activeClient(), c); + QCOMPARE(c->geometry(), QRect(0, 0, 100, 50)); + QSignalSpy geometryChangedSpy(c, &AbstractClient::geometryChanged); + QVERIFY(geometryChangedSpy.isValid()); + QSignalSpy startMoveResizedSpy(c, &AbstractClient::clientStartUserMovedResized); + QVERIFY(startMoveResizedSpy.isValid()); + QSignalSpy moveResizedChangedSpy(c, &AbstractClient::moveResizedChanged); + QVERIFY(moveResizedChangedSpy.isValid()); + QSignalSpy clientStepUserMovedResizedSpy(c, &AbstractClient::clientStepUserMovedResized); + QVERIFY(clientStepUserMovedResizedSpy.isValid()); + QSignalSpy clientFinishUserMovedResizedSpy(c, &AbstractClient::clientFinishUserMovedResized); + QVERIFY(clientFinishUserMovedResizedSpy.isValid()); + + // begin resize + QVERIFY(workspace()->getMovingClient() == nullptr); + QCOMPARE(c->isMove(), false); + QCOMPARE(c->isResize(), false); + workspace()->slotWindowResize(); + QCOMPARE(workspace()->getMovingClient(), c); + QCOMPARE(startMoveResizedSpy.count(), 1); + QCOMPARE(moveResizedChangedSpy.count(), 1); + QCOMPARE(c->isResize(), true); + QCOMPARE(c->geometryRestore(), QRect(0, 0, 100, 50)); + + // trigger a change + const QPoint cursorPos = Cursor::pos(); + c->keyPressEvent(Qt::Key_Right); + c->updateMoveResize(Cursor::pos()); + QCOMPARE(Cursor::pos(), cursorPos + QPoint(8, 0)); + // should result in a size change request + QVERIFY(surfaceSizeChangedSpy.wait()); + QCOMPARE(surfaceSizeChangedSpy.count(), 1); + QCOMPARE(surfaceSizeChangedSpy.last().first().toSize(), QSize(108, 50)); + QCOMPARE(clientStepUserMovedResizedSpy.count(), 0); + // now render new size + Test::render(surface.data(), QSize(108, 50), Qt::blue); + QVERIFY(geometryChangedSpy.wait()); + QCOMPARE(c->geometry(), QRect(0, 0, 108, 50)); + QEXPECT_FAIL("", "BUG 374869", Continue); + QCOMPARE(clientStepUserMovedResizedSpy.count(), 1); + + // go down + c->keyPressEvent(Qt::Key_Down); + c->updateMoveResize(Cursor::pos()); + QCOMPARE(Cursor::pos(), cursorPos + QPoint(8, 8)); + QVERIFY(surfaceSizeChangedSpy.wait()); + QCOMPARE(surfaceSizeChangedSpy.count(), 2); + QCOMPARE(surfaceSizeChangedSpy.last().first().toSize(), QSize(108, 58)); + // now render new size + Test::render(surface.data(), QSize(108, 58), Qt::blue); + QVERIFY(geometryChangedSpy.wait()); + QCOMPARE(c->geometry(), QRect(0, 0, 108, 58)); + QEXPECT_FAIL("", "BUG 374869", Continue); + QCOMPARE(clientStepUserMovedResizedSpy.count(), 2); + + // let's end + QCOMPARE(clientFinishUserMovedResizedSpy.count(), 0); + c->keyPressEvent(Qt::Key_Enter); + QCOMPARE(clientFinishUserMovedResizedSpy.count(), 1); + QCOMPARE(moveResizedChangedSpy.count(), 2); + QCOMPARE(c->isResize(), false); + QVERIFY(workspace()->getMovingClient() == nullptr); + surface.reset(); + QVERIFY(Test::waitForWindowDestroyed(c)); +} + void MoveResizeWindowTest::testPackTo_data() { QTest::addColumn("methodCall");