Hello community,
here is the log from the commit of package kwin5 for openSUSE:Factory checked in at 2017-07-02 13:34:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwin5 (Old)
and /work/SRC/openSUSE:Factory/.kwin5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwin5"
Sun Jul 2 13:34:52 2017 rev:58 rq:506547 version:5.10.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/kwin5/kwin5.changes 2017-06-19 13:23:16.553405548 +0200
+++ /work/SRC/openSUSE:Factory/.kwin5.new/kwin5.changes 2017-07-02 13:34:55.322611522 +0200
@@ -1,0 +2,21 @@
+Tue Jun 27 17:50:18 CEST 2017 - fabian@ritter-vogt.de
+
+- Update to 5.10.3
+ * New bugfix release
+ * For more details please see:
+ * https://www.kde.org/announcements/plasma-5.10.3.php
+- Changes since 5.10.2:
+ * Properly block the edge also for touch screen edges (kde#380476)
+ * [platforms/x11] Add support for GLX_NV_robustness_video_memory_purge (kde#344326)
+ * Fix double click on window deco if tripple clicked (kde#361241)
+ * Make shadows work for windows 100% width or height (kde#380825)
+ * [tabbox] Fix casts to Client where it should be AbstractClient
+ * Fix switch desktop on screenedge while resizing a Wayland window
+ * Fix switch desktop through edge when moving window (kde#380440)
+ * Workaround Qt regression of no longer delivering events for the root window (kde#360841)
+ * Better handle cases when the xkb keymap fails to be created (kde#381210)
+- Remove patches, now upstream:
+ * 0001-Force-creation-of-platform-window-for-the-desktop.patch
+ * 0001-Revert-Make-WindowSwitching-Alt-Tab-the-default-left.patch
+
+-------------------------------------------------------------------
Old:
----
0001-Force-creation-of-platform-window-for-the-desktop.patch
0001-Revert-Make-WindowSwitching-Alt-Tab-the-default-left.patch
kwin-5.10.2.tar.xz
New:
----
kwin-5.10.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kwin5.spec ++++++
--- /var/tmp/diff_new_pack.njbY8V/_old 2017-07-02 13:34:56.130497600 +0200
+++ /var/tmp/diff_new_pack.njbY8V/_new 2017-07-02 13:34:56.134497036 +0200
@@ -21,7 +21,7 @@
%define wayland 0%{?suse_version} >= 1330
%bcond_without lang
Name: kwin5
-Version: 5.10.2
+Version: 5.10.3
Release: 0
# Full Plasma 5 version (e.g. 5.8.95)
%{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}}
@@ -32,10 +32,6 @@
Group: System/GUI/KDE
Url: http://www.kde.org
Source: http://download.kde.org/stable/plasma/%{version}/kwin-%{version}.tar.xz
-# PATCH-FIX-OPENSUSE (?)
-Patch1: 0001-Revert-Make-WindowSwitching-Alt-Tab-the-default-left.patch
-# PATCH-FIX-OPENSUSE (?)
-Patch100: 0001-Force-creation-of-platform-window-for-the-desktop.patch
BuildRequires: extra-cmake-modules >= 0.0.11
BuildRequires: fdupes
BuildRequires: kf5-filesystem
@@ -145,8 +141,6 @@
%prep
%setup -q -n kwin-%{version}
-%patch1 -p1
-%patch100 -p1
%build
%cmake_kf5 -d build -- -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir}
++++++ kwin-5.10.2.tar.xz -> kwin-5.10.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/CMakeLists.txt new/kwin-5.10.3/CMakeLists.txt
--- old/kwin-5.10.2/CMakeLists.txt 2017-06-13 20:22:03.000000000 +0200
+++ new/kwin-5.10.3/CMakeLists.txt 2017-06-27 11:53:06.000000000 +0200
@@ -1,5 +1,5 @@
project(KWIN)
-set(PROJECT_VERSION "5.10.2")
+set(PROJECT_VERSION "5.10.3")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/abstract_client.cpp new/kwin-5.10.3/abstract_client.cpp
--- old/kwin-5.10.2/abstract_client.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/abstract_client.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -1495,7 +1495,7 @@
const qint64 interval = m_decoration.doubleClickTimer.elapsed();
m_decoration.doubleClickTimer.invalidate();
if (interval > QGuiApplication::styleHints()->mouseDoubleClickInterval()) {
- m_decoration.doubleClickTimer.invalidate(); // expired -> new first click and pot. init
+ m_decoration.doubleClickTimer.start(); // expired -> new first click and pot. init
} else {
Workspace::self()->performWindowOperation(this, options->operationTitlebarDblClick());
dontMoveResize();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/autotests/integration/CMakeLists.txt new/kwin-5.10.3/autotests/integration/CMakeLists.txt
--- old/kwin-5.10.2/autotests/integration/CMakeLists.txt 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/autotests/integration/CMakeLists.txt 2017-06-27 11:52:14.000000000 +0200
@@ -43,6 +43,7 @@
integrationTest(NAME testWindowSelection SRCS window_selection_test.cpp)
integrationTest(NAME testPointerConstraints SRCS pointer_constraints_test.cpp)
integrationTest(NAME testKeyboardLayout SRCS keyboard_layout_test.cpp)
+integrationTest(NAME testKeymapCreationFailure SRCS keymap_creation_failure_test.cpp)
if (XCB_ICCCM_FOUND)
integrationTest(NAME testMoveResize SRCS move_resize_window_test.cpp LIBS XCB::ICCCM)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/autotests/integration/keymap_creation_failure_test.cpp new/kwin-5.10.3/autotests/integration/keymap_creation_failure_test.cpp
--- old/kwin-5.10.2/autotests/integration/keymap_creation_failure_test.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/kwin-5.10.3/autotests/integration/keymap_creation_failure_test.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -0,0 +1,102 @@
+/********************************************************************
+KWin - the KDE window manager
+This file is part of the KDE project.
+
+Copyright (C) 2017 Martin Flöser
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see http://www.gnu.org/licenses/.
+*********************************************************************/
+#include "kwin_wayland_test.h"
+#include "keyboard_input.h"
+#include "keyboard_layout.h"
+#include "platform.h"
+#include "shell_client.h"
+#include "virtualdesktops.h"
+#include "wayland_server.h"
+#include "workspace.h"
+
+#include <KConfigGroup>
+#include <KGlobalAccel>
+
+#include
+
+using namespace KWin;
+using namespace KWayland::Client;
+
+static const QString s_socketName = QStringLiteral("wayland_test_kwin_keymap_creation_failure-0");
+
+class KeymapCreationFailureTest : public QObject
+{
+ Q_OBJECT
+private Q_SLOTS:
+ void initTestCase();
+ void init();
+ void cleanup();
+
+ void testPointerButton();
+};
+
+void KeymapCreationFailureTest::initTestCase()
+{
+ // situation for for BUG 381210
+ // this will fail to create keymap
+ qputenv("XKB_DEFAULT_RULES", "no");
+ qputenv("XKB_DEFAULT_MODEL", "no");
+ qputenv("XKB_DEFAULT_LAYOUT", "no");
+ qputenv("XKB_DEFAULT_VARIANT", "no");
+ qputenv("XKB_DEFAULT_OPTIONS", "no");
+
+ qRegisterMetaTypeKWin::ShellClient*();
+ qRegisterMetaTypeKWin::AbstractClient*();
+ QSignalSpy workspaceCreatedSpy(kwinApp(), &Application::workspaceCreated);
+ QVERIFY(workspaceCreatedSpy.isValid());
+ kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024));
+ QVERIFY(waylandServer()->init(s_socketName.toLocal8Bit()));
+
+ kwinApp()->setConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
+ kwinApp()->setKxkbConfig(KSharedConfig::openConfig(QString(), KConfig::SimpleConfig));
+ KConfigGroup layoutGroup = kwinApp()->kxkbConfig()->group("Layout");
+ layoutGroup.writeEntry("LayoutList", QStringLiteral("no"));
+ layoutGroup.writeEntry("Model", "no");
+ layoutGroup.writeEntry("Options", "no");
+ layoutGroup.sync();
+
+ kwinApp()->start();
+ QVERIFY(workspaceCreatedSpy.wait());
+ waylandServer()->initWorkspace();
+}
+
+void KeymapCreationFailureTest::init()
+{
+ QVERIFY(Test::setupWaylandConnection());
+}
+
+void KeymapCreationFailureTest::cleanup()
+{
+ Test::destroyWaylandConnection();
+}
+
+void KeymapCreationFailureTest::testPointerButton()
+{
+ // test case for BUG 381210
+ // pressing a pointer button results in crash
+
+ // now create the crashing condition
+ // which is sending in a pointer event
+ kwinApp()->platform()->pointerButtonPressed(BTN_LEFT, 0);
+ kwinApp()->platform()->pointerButtonReleased(BTN_LEFT, 1);
+}
+
+WAYLANDTEST_MAIN(KeymapCreationFailureTest)
+#include "keymap_creation_failure_test.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/autotests/mock_abstract_client.cpp new/kwin-5.10.3/autotests/mock_abstract_client.cpp
--- old/kwin-5.10.2/autotests/mock_abstract_client.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/autotests/mock_abstract_client.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -30,6 +30,7 @@
, m_hiddenInternal(false)
, m_keepBelow(false)
, m_geometry()
+ , m_resize(false)
{
}
@@ -103,4 +104,14 @@
emit keepBelowChanged();
}
+bool AbstractClient::isResize() const
+{
+ return m_resize;
+}
+
+void AbstractClient::setResize(bool set)
+{
+ m_resize = set;
+}
+
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/autotests/mock_abstract_client.h new/kwin-5.10.3/autotests/mock_abstract_client.h
--- old/kwin-5.10.2/autotests/mock_abstract_client.h 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/autotests/mock_abstract_client.h 2017-06-27 11:52:14.000000000 +0200
@@ -47,6 +47,8 @@
void setHiddenInternal(bool set);
void setGeometry(const QRect &rect);
void setKeepBelow(bool);
+ bool isResize() const;
+ void setResize(bool set);
virtual void showOnScreenEdge() = 0;
Q_SIGNALS:
@@ -60,6 +62,7 @@
bool m_hiddenInternal;
bool m_keepBelow;
QRect m_geometry;
+ bool m_resize;
};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/autotests/mock_client.cpp new/kwin-5.10.3/autotests/mock_client.cpp
--- old/kwin-5.10.2/autotests/mock_client.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/autotests/mock_client.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -35,9 +35,4 @@
setHiddenInternal(false);
}
-bool Client::isResize() const
-{
- return false;
-}
-
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/autotests/mock_client.h new/kwin-5.10.3/autotests/mock_client.h
--- old/kwin-5.10.2/autotests/mock_client.h 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/autotests/mock_client.h 2017-06-27 11:52:14.000000000 +0200
@@ -34,8 +34,6 @@
public:
explicit Client(QObject *parent);
virtual ~Client();
-
- bool isResize() const;
void showOnScreenEdge() override;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/autotests/test_screen_edges.cpp new/kwin-5.10.3/autotests/test_screen_edges.cpp
--- old/kwin-5.10.2/autotests/test_screen_edges.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/autotests/test_screen_edges.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -392,6 +392,27 @@
QCOMPARE(e->activatesForTouchGesture(), false);
QCOMPARE(e->approachGeometry(), expectedGeometries.at(i*2+1));
}
+
+ // let's start a move of window.
+ Client client(workspace());
+ workspace()->setMovingClient(&client);
+ for (int i = 0; i < 8; ++i) {
+ auto e = edges.at(i);
+ QVERIFY(!e->isReserved());
+ QCOMPARE(e->activatesForPointer(), true);
+ QCOMPARE(e->activatesForTouchGesture(), false);
+ QCOMPARE(e->approachGeometry(), expectedGeometries.at(i*2+1));
+ }
+ // not for resize
+ client.setResize(true);
+ for (int i = 0; i < 8; ++i) {
+ auto e = edges.at(i);
+ QVERIFY(!e->isReserved());
+ QCOMPARE(e->activatesForPointer(), false);
+ QCOMPARE(e->activatesForTouchGesture(), false);
+ QCOMPARE(e->approachGeometry(), expectedGeometries.at(i*2+1));
+ }
+ workspace()->setMovingClient(nullptr);
}
void TestScreenEdges::testCallback()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/effects/frozenapp/package/metadata.desktop new/kwin-5.10.3/effects/frozenapp/package/metadata.desktop
--- old/kwin-5.10.2/effects/frozenapp/package/metadata.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/effects/frozenapp/package/metadata.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -5,6 +5,7 @@
Name[el]=Αποκορεσμός χρωμάτων μη αποκρινόμενων εφαρμογών
Name[en_GB]=Desaturate Unresponsive Applications
Name[es]=Desaturar las aplicaciones que no responden
+Name[eu]=Desasetu erantzuten ez duten aplikazioak
Name[fi]=Vähennä värikylläisyyttä sovelluksilta, jotka eivät vastaa
Name[he]=מחשיך יישומים שאינם מגיבים
Name[it]=Desatura le applicazioni che non rispondono
@@ -30,6 +31,7 @@
Comment[el]=Αποκορεσμός χρωμάτων παραθύρων μη αποκρινόμενων (κολλημένων) εφαρμογών
Comment[en_GB]=Desaturate windows of unresponsive (frozen) applications
Comment[es]=Desaturar las ventanas de las aplicaciones que no responden (congeladas)
+Comment[eu]=Desasetu erantzuten ez duten aplikazioen leihoak (izoztuak)
Comment[fi]=Vähennä värikylläisyyttä sovelluksilta, jotka eivät vastaa (ovat jumittuneet)
Comment[he]=מחשיך חלונות של יישומים שאינם מגיבים (תקועים)
Comment[it]=Desatura le finestre delle applicazione che non rispondono (bloccate)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/effects/logout/package/metadata.desktop new/kwin-5.10.3/effects/logout/package/metadata.desktop
--- old/kwin-5.10.2/effects/logout/package/metadata.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/effects/logout/package/metadata.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -7,6 +7,7 @@
Name[el]=αποσύνδεση
Name[en_GB]=logout
Name[es]=cerrar la sesión
+Name[eu]=itxi saioa
Name[fi]=kirjaudu ulos
Name[he]=התנתקות
Name[hu]=Kijelentkezés
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/effects.cpp new/kwin-5.10.3/effects.cpp
--- old/kwin-5.10.2/effects.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/effects.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -48,6 +48,7 @@
#include "kwinglutils.h"
#include <QDebug>
+#include <QDesktopWidget>
#include
@@ -599,6 +600,11 @@
bool ret = grabXKeyboard();
if (!ret)
return false;
+ // Workaround for Qt 5.9 regression introduced with 2b34aefcf02f09253473b096eb4faffd3e62b5f4
+ // we no longer get any events for the root window, one needs to call winId() on the desktop window
+ // TODO: change effects event handling to create the appropriate QKeyEvent without relying on Qt
+ // as it's done already in the Wayland case.
+ qApp->desktop()->winId();
}
keyboard_grab_effect = effect;
return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/kcmkwin/kwincompositing/kwineffect.knsrc new/kwin-5.10.3/kcmkwin/kwincompositing/kwineffect.knsrc
--- old/kwin-5.10.2/kcmkwin/kwincompositing/kwineffect.knsrc 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/kcmkwin/kwincompositing/kwineffect.knsrc 2017-06-27 11:52:14.000000000 +0200
@@ -8,6 +8,7 @@
Name[el]=Εφέ διαχειριστή παραθύρων
Name[en_GB]=Window Manager Effects
Name[es]=Efectos del gestor de ventanas
+Name[eu]=Leiho kudeatzailearen efektua
Name[fi]=Ikkunaohjelman tehosteet
Name[fr]=Effets du gestionnaire de fenêtres
Name[he]=אפקטי מנהל חלונות
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/kcmkwin/kwinscreenedges/kwintouchscreen.desktop new/kwin-5.10.3/kcmkwin/kwinscreenedges/kwintouchscreen.desktop
--- old/kwin-5.10.2/kcmkwin/kwinscreenedges/kwintouchscreen.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/kcmkwin/kwinscreenedges/kwintouchscreen.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -18,9 +18,11 @@
Name[el]=Οθόνη αφής
Name[en_GB]=Touch Screen
Name[es]=Pantalla táctil
+Name[eu]=Ukimen-pantaila
Name[fi]=Kosketusnäyttö
Name[he]=מסך מגע
Name[it]=Schermo a sfioramento
+Name[lt]=Jutiklinis ekranas
Name[nl]=Aanraakscherm
Name[pl]=Ekran dotykowy
Name[pt]=Ecrã Táctil
@@ -41,6 +43,7 @@
Comment[ca@valencia]=Gestos de lliscament en la pantalla tàctil
Comment[en_GB]=Touch screen swipe gestures
Comment[es]=Gestos de deslizamiento en pantalla táctil
+Comment[eu]=Ukipen-pantailan irrist-keinuak
Comment[fi]=Kosketusnäytön pyyhkäisyeleet
Comment[he]=מחוות החלקה של מסכי מגע
Comment[it]=Gesti dello schermo a sfioramento
@@ -65,6 +68,7 @@
X-KDE-Keywords[ca@valencia]=kwin,finestra,gestor,efecte,vora,borde,acció,canvi,escriptori,vores d'escriptori,vores de pantalla,costat de pantalla,comportament de la pantalla,pantalla tàctil
X-KDE-Keywords[en_GB]=kwin,window,manager,effect,edge,border,action,switch,desktop,desktop edges,screen edges,side of screen,screen behaviour,touch screen
X-KDE-Keywords[es]=kwin,ventana,gestor,efecto,esquina,borde,acción,cambiar,escritorio,bordes del escritorio,bordes de la pantalla,lado de la pantalla,comportamiento de la pantalla,pantalla táctil
+X-KDE-Keywords[eu]=kwin,leiho,kudeatzaile,efektu,izkin,ertz,ekintza,aldatu,mahaigain,mahaigainaren ertzak,pantailen ertzak,pantailaren aldea,pantailaren portaera,ukipen-pantaila
X-KDE-Keywords[fi]=kwin,ikkuna,hallinta,tehoste,kulma,laita,reuna,toiminto,vaihda,työpöytä,työpöydän reunat,näytön reunat,näytön laita,näytön käyttäytyminen,kosketusnäyttö
X-KDE-Keywords[it]=kwin,finestra,gestore,effetto,angolo,bordo,azione,scambiatore,desktop,bordi desktop,bordi schermo,lato dello schermo,comportamento schermo,schermo a sfioramento
X-KDE-Keywords[nl]=kwin,venster,beheerder,effect,kant,rand,actie,omschakelen,bureaublad,bureaubladkanten,schermkanten,zijkant van het scherm,schermgedrag,aanraakscherm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/kcmkwin/kwinscripts/kwinscripts.knsrc new/kwin-5.10.3/kcmkwin/kwinscripts/kwinscripts.knsrc
--- old/kwin-5.10.2/kcmkwin/kwinscripts/kwinscripts.knsrc 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/kcmkwin/kwinscripts/kwinscripts.knsrc 2017-06-27 11:52:14.000000000 +0200
@@ -8,6 +8,7 @@
Name[el]=Σενάρια διαχειριστή παραθύρων
Name[en_GB]=Window Manager Scripts
Name[es]=Guiones del gestor de ventanas
+Name[eu]=Leiho kudeatzailearen scriptak
Name[fi]=Ikkunaohjelman skriptit
Name[fr]=Scripts du gestionnaire de fenêtres
Name[hu]=Ablakkezelő szkriptek
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/kcmkwin/kwintabbox/kwinswitcher.knsrc new/kwin-5.10.3/kcmkwin/kwintabbox/kwinswitcher.knsrc
--- old/kwin-5.10.2/kcmkwin/kwintabbox/kwinswitcher.knsrc 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/kcmkwin/kwintabbox/kwinswitcher.knsrc 2017-06-27 11:52:14.000000000 +0200
@@ -8,6 +8,7 @@
Name[el]=Διατάξεις εναλλαγής διαχειριστή παραθύρων
Name[en_GB]=Window Manager Switching Layouts
Name[es]=Esquemas de cambio del gestor de ventanas
+Name[eu]=Leiho kudeatzailearen aldatzeko-antolamenduak
Name[fi]=Ikkunaohjelman vaihdon asettelut
Name[fr]=Changement de disposition du gestionnaire de fenêtres
Name[he]=מחליף פריסות של מנהל החלונות
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/packageplugins/aurorae/kwin-packagestructure-aurorae.desktop new/kwin-5.10.3/packageplugins/aurorae/kwin-packagestructure-aurorae.desktop
--- old/kwin-5.10.2/packageplugins/aurorae/kwin-packagestructure-aurorae.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/packageplugins/aurorae/kwin-packagestructure-aurorae.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -7,6 +7,7 @@
Name[el]=KWin Aurorae
Name[en_GB]=KWin Aurorae
Name[es]=Aurorae de KWin
+Name[eu]=KWin Aurorae
Name[fi]=KWin Aurorae
Name[hu]=KWin Aurorae
Name[it]=Aurorae di Kwin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/packageplugins/decoration/kwin-packagestructure-decoration.desktop new/kwin-5.10.3/packageplugins/decoration/kwin-packagestructure-decoration.desktop
--- old/kwin-5.10.2/packageplugins/decoration/kwin-packagestructure-decoration.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/packageplugins/decoration/kwin-packagestructure-decoration.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -7,6 +7,7 @@
Name[el]=Διακοσμήσεις KWin
Name[en_GB]=KWin Decoration
Name[es]=Decoración de KWin
+Name[eu]=KWin apainketa
Name[fi]=KWin-ikkunakehykset
Name[hu]=KWin dekoráció
Name[ia]=Decorationes de KWin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/packageplugins/scripts/kwin-packagestructure-scripts.desktop new/kwin-5.10.3/packageplugins/scripts/kwin-packagestructure-scripts.desktop
--- old/kwin-5.10.2/packageplugins/scripts/kwin-packagestructure-scripts.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/packageplugins/scripts/kwin-packagestructure-scripts.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -8,6 +8,7 @@
Name[el]=Σενάριο KWin
Name[en_GB]=KWin Script
Name[es]=Guion de KWin
+Name[eu]=KWin scripta
Name[fi]=KWin-skripti
Name[hu]=KWin szkript
Name[ia]=Script de KWin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop new/kwin-5.10.3/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop
--- old/kwin-5.10.2/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/packageplugins/windowswitcher/kwin-packagestructure-windowswitcher.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -8,6 +8,7 @@
Name[el]=Εφαρμογή εναλλαγής παραθύρων Kwin
Name[en_GB]=KWin Window Switcher
Name[es]=Cambiador de ventanas de KWin
+Name[eu]=KWin leiho-aldatzailea
Name[fi]=KWin-ikkunanvalitsin
Name[hu]=KWin ablakváltó
Name[ia]=Commutator de fenestra de KWin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/plugins/kdecorations/aurorae/src/aurorae.knsrc new/kwin-5.10.3/plugins/kdecorations/aurorae/src/aurorae.knsrc
--- old/kwin-5.10.2/plugins/kdecorations/aurorae/src/aurorae.knsrc 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/plugins/kdecorations/aurorae/src/aurorae.knsrc 2017-06-27 11:52:14.000000000 +0200
@@ -8,6 +8,7 @@
Name[el]=Διακοσμήσεις παραθύρου Aurorae
Name[en_GB]=Aurorae Window Decorations
Name[es]=Decoración de ventanas Aurorae
+Name[eu]=Aurorae leihoentzako apaingarriak
Name[fi]=Aurorae-ikkunakehykset
Name[fr]=Décorations de fenêtres Aurorae
Name[hu]=Aurorae ablakdekorációk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/plugins/platforms/x11/standalone/edge.cpp new/kwin-5.10.3/plugins/platforms/x11/standalone/edge.cpp
--- old/kwin-5.10.2/plugins/platforms/x11/standalone/edge.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/plugins/platforms/x11/standalone/edge.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -130,9 +130,6 @@
if (!isReserved()) {
return;
}
- if (!activatesForPointer()) {
- return;
- }
if (isBlocked()) {
m_window.unmap();
m_approachWindow.unmap();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/plugins/platforms/x11/standalone/glxbackend.cpp new/kwin-5.10.3/plugins/platforms/x11/standalone/glxbackend.cpp
--- old/kwin-5.10.2/plugins/platforms/x11/standalone/glxbackend.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/plugins/platforms/x11/standalone/glxbackend.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -64,6 +64,10 @@
} xcb_glx_buffer_swap_complete_event_t;
#endif
+#ifndef GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV
+#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
+#endif
+
#include <tuple>
#if __cplusplus <= 201103L
@@ -293,6 +297,15 @@
// Use glXCreateContextAttribsARB() when it's available
if (hasExtension(QByteArrayLiteral("GLX_ARB_create_context"))) {
+ const int attribs_31_core_nv_robustness[] = {
+ GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
+ GLX_CONTEXT_MINOR_VERSION_ARB, 1,
+ GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB,
+ GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB, GLX_LOSE_CONTEXT_ON_RESET_ARB,
+ GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV, GL_TRUE,
+ 0
+ };
+
const int attribs_31_core_robustness[] = {
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
GLX_CONTEXT_MINOR_VERSION_ARB, 1,
@@ -307,6 +320,13 @@
0
};
+ const int attribs_legacy_nv_robustness[] = {
+ GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB,
+ GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB, GLX_LOSE_CONTEXT_ON_RESET_ARB,
+ GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV, GL_TRUE,
+ 0
+ };
+
const int attribs_legacy_robustness[] = {
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB,
GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB, GLX_LOSE_CONTEXT_ON_RESET_ARB,
@@ -320,18 +340,31 @@
};
const bool have_robustness = hasExtension(QByteArrayLiteral("GLX_ARB_create_context_robustness"));
+ const bool haveVideoMemoryPurge = hasExtension(QByteArrayLiteral("GLX_NV_robustness_video_memory_purge"));
// Try to create a 3.1 context first
if (options->glCoreProfile()) {
- if (have_robustness)
- ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_31_core_robustness);
+ if (have_robustness) {
+ if (haveVideoMemoryPurge) {
+ ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_31_core_nv_robustness);
+ }
+ if (!ctx) {
+ ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_31_core_robustness);
+ }
+ }
if (!ctx)
ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_31_core);
}
- if (!ctx && have_robustness)
- ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_legacy_robustness);
+ if (!ctx && have_robustness) {
+ if (haveVideoMemoryPurge) {
+ ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_legacy_nv_robustness);
+ }
+ if (!ctx) {
+ ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_legacy_robustness);
+ }
+ }
if (!ctx)
ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_legacy);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/po/tr/kcmkwinrules.po new/kwin-5.10.3/po/tr/kcmkwinrules.po
--- old/kwin-5.10.2/po/tr/kcmkwinrules.po 2017-06-13 20:21:36.000000000 +0200
+++ new/kwin-5.10.3/po/tr/kcmkwinrules.po 2017-06-27 11:52:54.000000000 +0200
@@ -192,9 +192,9 @@
"özelleştirilmiştir. Bir set <i>taban</i>+(<i>liste</i>) şeklinde "
"özelleştirilmiştir, Burada taban değiştiricileri ve liste tuşların listesini "
"belirtir.<br>\n"
-"Örneğin.\"<b>ÜstKrktr+Alt+(123) ÜstKrktr+Ctrl+(ABC)</b>\" önce "
-"<b>ÜstKrktr+Alt+1</b>'i deneyecek sırayla devam edecek en son olarak "
-"<b>ÜstKrktr+Ctrl+C</b>'yi deneyecektir."
+"Örneğin.\"<b>ÜstKrktr+Alt+(123) ÜstKrktr+Ctrl+(ABC)</b>\" önce <b>ÜstKrktr"
+"+Alt+1</b>'i deneyecek sırayla devam edecek en son olarak <b>ÜstKrktr+Ctrl"
+"+C</b>'yi deneyecektir."
#. i18n: ectx: property (text), widget (QPushButton, pushButton1)
#: editshortcut.ui:62
@@ -380,19 +380,18 @@
"given value until it is hidden (this action will be deleted after the window "
"is hidden).</li></ul>"
msgstr ""
-"Pencere özelliğinin nasıl etkileneceğini belirtin:<ul><li><em>Etkilenme:</em>"
-" Pencere özelliği etkilenmeyecektir ve öntanımlı ayarlar kullanılacaktır. "
-"Bunu belirtmek bir çok genel pencerenin etkilenmesini "
-"engelliyeecktir.</li><li><em>İlk Olarak Uygula:</em> Pencere özelliği, "
-"pencere oluşturulduktan sonra verilen değere ayarlanacaktır. Daha başka "
-"değişiklik olmayacaktır.</li><li><em>Hatırla:</em> Pencere özelliğinin "
-"değeri her zaman hatırlanacak ve en son hatırlanan değer "
-"uygulanacaktır.</li><li><em>Zorla:</em> Bu, pencere özelliğini her zaman "
-"verilen değerlere zorlar.</li><li><em>Şimdi Uygula:</em> Pencere özelliğine "
-"verilen değer hemen uygulanacak ve sonra etkilenmeyecektir (bu eylem daha "
-"sonra silinecektir).</li><li><em>Geçici olarak Zorla:</em> Pencere özelliği "
-"gizlenene kadar verilen değere zorlanacaktır (bu eylem pencere gizlendikten "
-"sonra silinecektir).</li></ul>"
+"Pencere özelliğinin nasıl etkileneceğini belirtin:<ul><li><em>Etkilenme:"
+"em> Pencere özelliği etkilenmeyecektir ve öntanımlı ayarlar kullanılacaktır. "
+"Bunu belirtmek bir çok genel pencerenin etkilenmesini engelliyeecktir."
+"li><li><em>İlk Olarak Uygula:</em> Pencere özelliği, pencere oluşturulduktan "
+"sonra verilen değere ayarlanacaktır. Daha başka değişiklik olmayacaktır."
+"li><li><em>Hatırla:</em> Pencere özelliğinin değeri her zaman hatırlanacak "
+"ve en son hatırlanan değer uygulanacaktır.</li><li><em>Zorla:</em> Bu, "
+"pencere özelliğini her zaman verilen değerlere zorlar.</li><li><em>Şimdi "
+"Uygula:</em> Pencere özelliğine verilen değer hemen uygulanacak ve sonra "
+"etkilenmeyecektir (bu eylem daha sonra silinecektir).</li><li><em>Geçici "
+"olarak Zorla:</em> Pencere özelliği gizlenene kadar verilen değere "
+"zorlanacaktır (bu eylem pencere gizlendikten sonra silinecektir).</li></ul>"
#: ruleswidget.cpp:83
#, kde-format
@@ -405,13 +404,13 @@
"em> The window property will be forced to the given value until it is hidden "
"(this action will be deleted after the window is hidden).</li></ul>"
msgstr ""
-"Pencere özelliğinin nasıl etkileneceğini belirtin:<ul><li><em>Etkileme "
-"Yok:</em> Pencere özelliği etkilenmeyecektir ve öntanımlı ayarlar "
-"kullanılacaktır. Bunu belirtmek bir çok genel pencerenin etkilenmesini "
-"engelleyecektir.</li><li><em>Zorla:</em> Bu, pencere özelliğini her zaman "
-"verilen değerlere zorlar.</li><li><em>Geçici olarak Zorla:</em>Bu, pencere "
-"özelliğini pencere gizlenene kadar verilen değerlere zorlar. (bu eylem "
-"pencere gizlenince silinir).</li></ul>"
+"Pencere özelliğinin nasıl etkileneceğini belirtin:<ul><li><em>Etkileme Yok:"
+"em> Pencere özelliği etkilenmeyecektir ve öntanımlı ayarlar kullanılacaktır. "
+"Bunu belirtmek bir çok genel pencerenin etkilenmesini engelleyecektir."
+"li><li><em>Zorla:</em> Bu, pencere özelliğini her zaman verilen değerlere "
+"zorlar.</li><li><em>Geçici olarak Zorla:</em>Bu, pencere özelliğini pencere "
+"gizlenene kadar verilen değerlere zorlar. (bu eylem pencere gizlenince "
+"silinir).</li></ul>"
#: ruleswidget.cpp:150
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/po/tr/kcmkwm.po new/kwin-5.10.3/po/tr/kcmkwm.po
--- old/kwin-5.10.2/po/tr/kcmkwm.po 2017-06-13 20:21:36.000000000 +0200
+++ new/kwin-5.10.3/po/tr/kcmkwm.po 2017-06-27 11:52:54.000000000 +0200
@@ -530,8 +530,8 @@
"<li><em>Rastgele</em> rastgele bir yerleşim kullanacaktır.</li>\n"
"<li><em>Ortalanmış</em> pencereyi ortaya yerleştirecektir.</li>\n"
"<li><em>Sıfır Köşeli</em> pencereyi sol üst köşeye yerleştirecektir.</li>\n"
-"<li><em>Farenin Altında</em> pencereyi imlecin altına yerleştirecektir.</li>"
-"\n"
+"<li><em>Farenin Altında</em> pencereyi imlecin altına yerleştirecektir."
+"li>\n"
"</ul>"
#. i18n: ectx: property (text), item, widget (KComboBox, placementCombo)
@@ -698,8 +698,8 @@
"Think as <i>Click To Focus</i> just without having to actually click."
msgstr ""
"<b>Odak Fareyi Takip Eder</b><br>\n"
-"Farenin bir pencere üzerine sürüklenmesi, o pencereyi etkinleştirir.<br><br>"
-"\n"
+"Farenin bir pencere üzerine sürüklenmesi, o pencereyi etkinleştirir."
+"<br><br>\n"
"Örn. farenin altında rastgele görünen pencereler odaklanılmayacaktır.<br>\n"
"Odak çalma koruması, alışıldığı gibi kullanılır.<br><br>\n"
"<i>Odaklanmak için Tıkla</i> olarak düşünün, sadece gerçekten tıklamadan."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/po/tr/kwin.po new/kwin-5.10.3/po/tr/kwin.po
--- old/kwin-5.10.2/po/tr/kwin.po 2017-06-13 20:21:36.000000000 +0200
+++ new/kwin-5.10.3/po/tr/kwin.po 2017-06-27 11:52:54.000000000 +0200
@@ -15,8 +15,8 @@
"Project-Id-Version: kwin\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2017-05-10 06:25+0200\n"
-"PO-Revision-Date: 2017-05-10 07:30+0000\n"
-"Last-Translator: Kaan \n"
+"PO-Revision-Date: 2017-06-09 14:24+0100\n"
+"Last-Translator: Volkan Gezer \n"
"Language-Team: Turkish \n"
"Language: tr\n"
"MIME-Version: 1.0\n"
@@ -818,8 +818,8 @@
"<p>You tried to close window \"%1\" from application \"%2\" (Process ID: "
"%3), running on host \"%4\", but the application is not responding.</p>"
msgstr ""
-"<p>\"%4\" sunucusunda çalışan \"%2\" uygulamasından (Süreç Kimliği: %3) \"%"
-"1\" penceresini kapatmaya çalıştınız fakat uygulama yanıt vermiyor.</p>"
+"<p>\"%4\" sunucusunda çalışan \"%2\" uygulamasından (Süreç Kimliği: %3) "
+"\"%1\" penceresini kapatmaya çalıştınız fakat uygulama yanıt vermiyor.</p>"
#: helpers/killer/killer.cpp:103
#, kde-kuit-format
@@ -1275,24 +1275,24 @@
#: main_wayland.cpp:522
#, kde-format
msgid "The width for windowed mode. Default width is 1024."
-msgstr "Pencereli kipin genişliği. Varsayılan genişlik 1024'tür."
+msgstr "Pencereli kipin genişliği. Öntanımlı genişlik 1024'tür."
#: main_wayland.cpp:526
#, kde-format
msgid "The height for windowed mode. Default height is 768."
-msgstr "Pencereli kipin yüksekliği. Varsayılan yükseklik 768'tir."
+msgstr "Pencereli kipin yüksekliği. Öntanımlı yükseklik 768'tir."
#: main_wayland.cpp:531
#, kde-format
msgid "The scale for windowed mode. Default value is 1."
-msgstr "Pencerelenmiş kipin ölçeği. Varsayılan değer 1'dir."
+msgstr "Pencerelenmiş kipin ölçeği. Öntanımlı değer 1'dir."
#: main_wayland.cpp:536
#, kde-format
msgid ""
"The number of windows to open as outputs in windowed mode. Default value is 1"
msgstr ""
-"Pencere kipinde çıkış olarak açılacak pencere sayısı. Varsayılan değer 1'dir"
+"Pencere kipinde çıkış olarak açılacak pencere sayısı. Öntanımlı değer 1'dir"
#: main_wayland.cpp:569
#, kde-format
@@ -1331,7 +1331,8 @@
#: main_wayland.cpp:600
#, kde-format
msgid "Exit after the session application, which is started by KWin, closed."
-msgstr "KWin tarafından başlatılan oturum uygulaması kapatıldıktan sonra çıkın."
+msgstr ""
+"KWin tarafından başlatılan oturum uygulaması kapatıldıktan sonra çıkın."
#: main_wayland.cpp:606 main_x11.cpp:423
#, kde-format
@@ -1436,8 +1437,8 @@
"compositing, switch to the XRender backend or lower the resolution to %1x%1."
msgstr ""
"<h1>OpenGL masaüstü efektleri kullanılamayabilir</h1>Geçerli çözünürlükte "
-"OpenGL Masaüstü Efektleri destekleniyor ancak oldukça yavaş çalışabilir.<br>"
-"Ayrıca büyük pencereler tamamen siyah görünecektir.<br><br>Birleştirmeyi "
+"OpenGL Masaüstü Efektleri destekleniyor ancak oldukça yavaş çalışabilir."
+"<br>Ayrıca büyük pencereler tamamen siyah görünecektir.<br><br>Birleştirmeyi "
"durdurun, XRender arka ucuna geçin veya çözünürlüğü %1x%1 olarak ayarlayın."
#: scene_opengl.cpp:898
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/po/tr/kwin_scripting.po new/kwin-5.10.3/po/tr/kwin_scripting.po
--- old/kwin-5.10.2/po/tr/kwin_scripting.po 2017-06-13 20:21:36.000000000 +0200
+++ new/kwin-5.10.3/po/tr/kwin_scripting.po 2017-06-27 11:52:54.000000000 +0200
@@ -85,7 +85,8 @@
#, kde-format
msgctxt "KWin Scripting error thrown due to incorrect argument"
msgid "Second argument to registerScreenEdge needs to be a callback"
-msgstr "RegisterScreenEdge'in ikinci argümanının bir geriçağırım olması gerekir"
+msgstr ""
+"RegisterScreenEdge'in ikinci argümanının bir geriçağırım olması gerekir"
#: scriptingutils.h:213
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/scene_opengl.cpp new/kwin-5.10.3/scene_opengl.cpp
--- old/kwin-5.10.2/scene_opengl.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/scene_opengl.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -2248,12 +2248,12 @@
const QRectF outerRect(QPointF(-leftOffset(), -topOffset()),
QPointF(topLevel()->width() + rightOffset(), topLevel()->height() + bottomOffset()));
- const int width = qMax(topLeft.width(), bottomLeft.width()) +
- qMax(top.width(), bottom.width()) +
- qMax(topRight.width(), bottomRight.width());
- const int height = qMax(topLeft.height(), topRight.height()) +
- qMax(left.height(), right.height()) +
- qMax(bottomLeft.height(), bottomRight.height());
+ const int width = std::max({topLeft.width(), left.width(), bottomLeft.width()}) +
+ std::max(top.width(), bottom.width()) +
+ std::max({topRight.width(), right.width(), bottomRight.width()});
+ const int height = std::max({topLeft.height(), top.height(), topRight.height()}) +
+ std::max(left.height(), right.height()) +
+ std::max({bottomLeft.height(), bottom.height(), bottomRight.height()});
qreal tx1(0.0), tx2(0.0), ty1(0.0), ty2(0.0);
@@ -2355,13 +2355,12 @@
const QSize topLeft(shadowPixmap(ShadowElementTopLeft).size());
const QSize bottomRight(shadowPixmap(ShadowElementBottomRight).size());
- const int width = qMax(topLeft.width(), bottomLeft.width()) +
- qMax(top.width(), bottom.width()) +
- qMax(topRight.width(), bottomRight.width());
-
- const int height = qMax(topRight.height(), topLeft.height()) +
- qMax(left.height(), right.height()) +
- qMax(bottomLeft.height(), bottomRight.height());
+ const int width = std::max({topLeft.width(), left.width(), bottomLeft.width()}) +
+ std::max(top.width(), bottom.width()) +
+ std::max({topRight.width(), right.width(), bottomRight.width()});
+ const int height = std::max({topLeft.height(), top.height(), topRight.height()}) +
+ std::max(left.height(), right.height()) +
+ std::max({bottomLeft.height(), bottom.height(), bottomRight.height()});
if (width == 0 || height == 0) {
return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/screenedge.cpp new/kwin-5.10.3/screenedge.cpp
--- old/kwin-5.10.2/screenedge.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/screenedge.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -183,6 +183,12 @@
if (m_edges->isDesktopSwitching()) {
return true;
}
+ if (m_edges->isDesktopSwitchingMovingClients()) {
+ auto c = Workspace::self()->getMovingClient();
+ if (c && !c->isResize()) {
+ return true;
+ }
+ }
if (!m_callBacks.isEmpty()) {
return true;
}
@@ -293,10 +299,7 @@
void Edge::handle(const QPoint &cursorPos)
{
AbstractClient *movingClient = Workspace::self()->getMovingClient();
- bool isResize = false;
- if (Client *movingClientClient = qobject_cast(movingClient))
- isResize = movingClientClient->isResize();
- if ((edges()->isDesktopSwitchingMovingClients() && movingClient && !isResize) ||
+ if ((edges()->isDesktopSwitchingMovingClients() && movingClient && !movingClient->isResize()) ||
(edges()->isDesktopSwitching() && isScreenEdge())) {
// always switch desktops in case:
// moving a Client and option for switch on client move is enabled
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/scripts/minimizeall/metadata.desktop new/kwin-5.10.3/scripts/minimizeall/metadata.desktop
--- old/kwin-5.10.2/scripts/minimizeall/metadata.desktop 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/scripts/minimizeall/metadata.desktop 2017-06-27 11:52:14.000000000 +0200
@@ -19,7 +19,7 @@
Name[it]=Minimizza tutto
Name[ja]=すべて最小化
Name[ko]=모두최소화
-Name[lt]=SumažintiVisus
+Name[lt]=Sumažinti visus
Name[nb]=Minimer alt
Name[nl]=Alles-minimaliseren
Name[nn]=Minimer alle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/tabbox/tabbox.cpp new/kwin-5.10.3/tabbox/tabbox.cpp
--- old/kwin-5.10.2/tabbox/tabbox.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/tabbox/tabbox.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -284,7 +284,7 @@
ToplevelList stacking = Workspace::self()->stackingOrder();
TabBoxClientList ret;
foreach (Toplevel *toplevel, stacking) {
- if (Client *client = qobject_cast(toplevel)) {
+ if (auto client = qobject_cast(toplevel)) {
ret.append(client->tabBoxClient());
}
}
@@ -331,7 +331,7 @@
QWeakPointer<TabBoxClient> TabBoxHandlerImpl::desktopClient() const
{
foreach (Toplevel *toplevel, Workspace::self()->stackingOrder()) {
- Client *client = qobject_cast(toplevel);
+ auto client = qobject_cast(toplevel);
if (client && client->isDesktop() && client->isOnCurrentDesktop() && client->screen() == screens()->current()) {
return client->tabBoxClient();
}
@@ -1319,7 +1319,7 @@
void TabBox::CDEWalkThroughWindows(bool forward)
{
- Client* c = nullptr;
+ AbstractClient* c = nullptr;
// this function find the first suitable client for unreasonable focus
// policies - the topmost one, with some exceptions (can't be keepabove/below,
// otherwise it gets stuck on them)
@@ -1327,7 +1327,7 @@
for (int i = Workspace::self()->stackingOrder().size() - 1;
i >= 0 ;
--i) {
- Client* it = qobject_cast(Workspace::self()->stackingOrder().at(i));
+ auto it = qobject_cast(Workspace::self()->stackingOrder().at(i));
if (it && it->isOnCurrentActivity() && it->isOnCurrentDesktop() && !it->isSpecialWindow()
&& it->isShown(false) && it->wantsTabFocus()
&& !it->keepAbove() && !it->keepBelow()) {
@@ -1335,14 +1335,14 @@
break;
}
}
- Client* nc = c;
+ AbstractClient* nc = c;
bool options_traverse_all;
{
KConfigGroup group(kwinApp()->config(), "TabBox");
options_traverse_all = group.readEntry("TraverseAll", false);
}
- Client* firstClient = nullptr;
+ AbstractClient* firstClient = nullptr;
do {
nc = forward ? nextClientStatic(nc) : previousClientStatic(nc);
if (!firstClient) {
@@ -1641,34 +1641,36 @@
auxiliary functions to travers all clients according to the static
order. Useful for the CDE-style Alt-tab feature.
*/
-Client* TabBox::nextClientStatic(Client* c) const
+AbstractClient* TabBox::nextClientStatic(AbstractClient* c) const
{
- if (!c || Workspace::self()->clientList().isEmpty())
+ const auto &list = Workspace::self()->allClientList();
+ if (!c || list.isEmpty())
return 0;
- int pos = Workspace::self()->clientList().indexOf(c);
+ int pos = list.indexOf(c);
if (pos == -1)
- return Workspace::self()->clientList().first();
+ return list.first();
++pos;
- if (pos == Workspace::self()->clientList().count())
- return Workspace::self()->clientList().first();
- return Workspace::self()->clientList()[ pos ];
+ if (pos == list.count())
+ return list.first();
+ return list.at(pos);
}
/*!
auxiliary functions to travers all clients according to the static
order. Useful for the CDE-style Alt-tab feature.
*/
-Client* TabBox::previousClientStatic(Client* c) const
+AbstractClient* TabBox::previousClientStatic(AbstractClient* c) const
{
- if (!c || Workspace::self()->clientList().isEmpty())
+ const auto &list = Workspace::self()->allClientList();
+ if (!c || list.isEmpty())
return 0;
- int pos = Workspace::self()->clientList().indexOf(c);
+ int pos = list.indexOf(c);
if (pos == -1)
- return Workspace::self()->clientList().last();
+ return list.last();
if (pos == 0)
- return Workspace::self()->clientList().last();
+ return list.last();
--pos;
- return Workspace::self()->clientList()[ pos ];
+ return list.at(pos);
}
bool TabBox::establishTabBoxGrab()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/tabbox/tabbox.h new/kwin-5.10.3/tabbox/tabbox.h
--- old/kwin-5.10.2/tabbox/tabbox.h 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/tabbox/tabbox.h 2017-06-27 11:52:14.000000000 +0200
@@ -176,8 +176,8 @@
void initShortcuts();
- Client* nextClientStatic(Client*) const;
- Client* previousClientStatic(Client*) const;
+ AbstractClient* nextClientStatic(AbstractClient*) const;
+ AbstractClient* previousClientStatic(AbstractClient*) const;
int nextDesktopStatic(int iDesktop) const;
int previousDesktopStatic(int iDesktop) const;
void keyPress(int key);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwin-5.10.2/xkb.cpp new/kwin-5.10.3/xkb.cpp
--- old/kwin-5.10.2/xkb.cpp 2017-06-13 20:19:37.000000000 +0200
+++ new/kwin-5.10.3/xkb.cpp 2017-06-27 11:52:14.000000000 +0200
@@ -354,13 +354,16 @@
QString Xkb::layoutName(xkb_layout_index_t layout) const
{
+ if (!m_keymap) {
+ return QString{};
+ }
return QString::fromLocal8Bit(xkb_keymap_layout_get_name(m_keymap, layout));
}
QMap Xkb::layoutNames() const
{
QMap layouts;
- const auto size = xkb_keymap_num_layouts(m_keymap);
+ const auto size = m_keymap ? xkb_keymap_num_layouts(m_keymap) : 0u;
for (xkb_layout_index_t i = 0; i < size; i++) {
layouts.insert(i, layoutName(i));
}
@@ -387,6 +390,9 @@
Qt::KeyboardModifiers Xkb::modifiersRelevantForGlobalShortcuts() const
{
+ if (!m_state) {
+ return Qt::NoModifier;
+ }
Qt::KeyboardModifiers mods = Qt::NoModifier;
if (xkb_state_mod_index_is_active(m_state, m_shiftModifier, XKB_STATE_MODS_EFFECTIVE) == 1) {
mods |= Qt::ShiftModifier;