diff options
author | Tobias C. Berner <tcberner@FreeBSD.org> | 2021-06-13 06:15:08 +0000 |
---|---|---|
committer | Tobias C. Berner <tcberner@FreeBSD.org> | 2021-06-13 06:38:35 +0000 |
commit | 4ea20bee50630eb895f1e50c59cc71d2c04fe5e4 (patch) | |
tree | 818149c0fbd4bfe00968206266d5397579273be8 /x11-wm/plasma5-kwin/files | |
parent | 896d87b6fb1a606385449fef9d7e44823cf08b8a (diff) | |
download | ports-4ea20bee50630eb895f1e50c59cc71d2c04fe5e4.tar.gz ports-4ea20bee50630eb895f1e50c59cc71d2c04fe5e4.zip |
x11/plasma5-plasma: Update KDE Plasma Desktop to 5.22
Plasma 5.22 is here, and it is more reliable and stable than ever. By
cleaning up and refactoring code in the background, the Plasma desktop
gives you greater responsiveness and performance, helping you become
even more productive without hiccups or surprises. Enjoy a smoother
experience with KDE’s Plasma 5.22 desktop.
Plasma 5.22 has become more pleasurable to use through improvements to
the design and greater smoothness and consistency in transparencies,
blurs, icons, and animations. Moving things to accessible locations,
offering hints and visual cues, and creating new settings allows you to
customize your work environment to make it fit perfectly to your needs.
Following the true KDE spirit, the push for a more stable and attractive
desktop does not mean you have to renounce control over how you want it
to look or behave. Plasma 5.22, as always, packs all the flexibility and
tools for customization you have come to expect and love, and some more
to boot.
Meanwhile, the push to move Plasma in its entirety to Wayland (the
display protocol of the future) continues in full swing. So much so that
popular distros are starting to ship Plasma with Wayland by default. By
using Wayland behind the scenes, Plasma is able to include features and
bug fixes not possible to implement on X11, offering you a better
experience and more stability.
Full announcement and changelog:
https://kde.org/announcements/plasma/5/5.22.0/
Diffstat (limited to 'x11-wm/plasma5-kwin/files')
-rw-r--r-- | x11-wm/plasma5-kwin/files/patch-git-425170b7814c1ff27b165982b93d78422621bddb | 83 | ||||
-rw-r--r-- | x11-wm/plasma5-kwin/files/patch-git-e940f73963 | 104 |
2 files changed, 0 insertions, 187 deletions
diff --git a/x11-wm/plasma5-kwin/files/patch-git-425170b7814c1ff27b165982b93d78422621bddb b/x11-wm/plasma5-kwin/files/patch-git-425170b7814c1ff27b165982b93d78422621bddb deleted file mode 100644 index 7d3a2293fe63..000000000000 --- a/x11-wm/plasma5-kwin/files/patch-git-425170b7814c1ff27b165982b93d78422621bddb +++ /dev/null @@ -1,83 +0,0 @@ -commit 425170b7814c1ff27b165982b93d78422621bddb (origin/work/wayland-fix-focus-follows-mouse) -Author: Vlad Zahorodnii <vlad.zahorodnii@kde.org> -Date: Mon May 3 11:24:22 2021 +0300 - - wayland: Fix focus follows mouse policy - - We want to update the input focus only if the pointer is moved. Due to - that, AbstractClient::enterEvent() checks the last seen pointer position - to decide whether the window needs to be focused. - - The issue is that when the pointer moves from a decoration to a surface, - the cached pointer position will be updated to the current pointer - position, and thus the check in AbstractClient::enterEvent() will fail. - - We need to update the cached pointer position only if there is a focused - decoration. - -diff --git src/input.cpp src/input.cpp -index 9377e9334..b1b961e39 100644 ---- input.cpp -+++ input.cpp -@@ -2846,6 +2846,7 @@ void InputDeviceHandler::update() - setAt(toplevel); - - if (focusUpdatesBlocked()) { -+ workspace()->updateFocusMousePosition(position().toPoint()); - return; - } - -@@ -2860,21 +2861,20 @@ void InputDeviceHandler::update() - // went onto or off from decoration, update focus - updateFocus(); - } -- return; -- } -- updateInternalWindow(nullptr); -+ } else { -+ updateInternalWindow(nullptr); - -- if (m_focus.focus != m_at.at) { -- // focus change -- updateDecoration(); -- updateFocus(); -- return; -- } -- // check if switched to/from decoration while staying on the same Toplevel -- if (updateDecoration()) { -- // went onto or off from decoration, update focus -- updateFocus(); -+ if (m_focus.focus != m_at.at) { -+ // focus change -+ updateDecoration(); -+ updateFocus(); -+ } else if (updateDecoration()) { -+ // went onto or off from decoration, update focus -+ updateFocus(); -+ } - } -+ -+ workspace()->updateFocusMousePosition(position().toPoint()); - } - - Toplevel *InputDeviceHandler::at() const -diff --git src/pointer_input.cpp src/pointer_input.cpp -index bf59197d3..a93c2cf55 100644 ---- pointer_input.cpp -+++ pointer_input.cpp -@@ -473,7 +473,6 @@ void PointerInputRedirection::cleanupDecoration(Decoration::DecoratedClientImpl - { - disconnect(m_decorationGeometryConnection); - m_decorationGeometryConnection = QMetaObject::Connection(); -- workspace()->updateFocusMousePosition(position().toPoint()); - - if (old) { - // send leave event to old decoration -@@ -524,7 +523,6 @@ void PointerInputRedirection::focusUpdate(Toplevel *focusOld, Toplevel *focusNow - - if (AbstractClient *ac = qobject_cast<AbstractClient*>(focusNow)) { - ac->enterEvent(m_pos.toPoint()); -- workspace()->updateFocusMousePosition(m_pos.toPoint()); - } - - if (internalWindow()) { diff --git a/x11-wm/plasma5-kwin/files/patch-git-e940f73963 b/x11-wm/plasma5-kwin/files/patch-git-e940f73963 deleted file mode 100644 index 4f00660e6bc9..000000000000 --- a/x11-wm/plasma5-kwin/files/patch-git-e940f73963 +++ /dev/null @@ -1,104 +0,0 @@ -diff --git libinput/context.cpp libinput/context.cpp -index 00aa98490..f239c8967 100644 ---- libinput/context.cpp -+++ libinput/context.cpp -@@ -63,6 +63,13 @@ bool Context::assignSeat(const char *seat) - if (!isValid()) { - return false; - } -+#if defined(Q_OS_FREEBSD) -+ // On FreeBSD, seat-assignment does work; when assigning -+ // to a different seat, no input devices are ever reported. -+ // Using the default seat **does** return devices, so -+ // use that instead. -+ seat = "seat0"; -+#endif - return libinput_udev_assign_seat(m_libinput, seat) == 0; - } - -diff --git logind.cpp logind.cpp -index cf5266b68..da77a3a59 100644 ---- logind.cpp -+++ logind.cpp -@@ -356,6 +356,11 @@ void LogindIntegration::releaseControl() - emit hasSessionControlChanged(false); - } - -+static QVariantList fromRDev(const dev_t rdev) -+{ -+ return QVariantList({quint32(major(rdev)), quint32(minor(rdev))}); -+} -+ - int LogindIntegration::takeDevice(const char *path) - { - struct stat st; -@@ -367,7 +372,7 @@ int LogindIntegration::takeDevice(const char *path) - m_sessionPath, - m_sessionControllerSessionInterface, - QStringLiteral("TakeDevice")); -- message.setArguments(QVariantList({QVariant(major(st.st_rdev)), QVariant(minor(st.st_rdev))})); -+ message.setArguments(fromRDev(st.st_rdev)); - // intended to be a blocking call - QDBusMessage reply = m_bus.call(message); - if (reply.type() == QDBusMessage::ErrorMessage) { -@@ -389,7 +394,7 @@ void LogindIntegration::releaseDevice(int fd) - m_sessionPath, - m_sessionControllerSessionInterface, - QStringLiteral("ReleaseDevice")); -- message.setArguments(QVariantList({QVariant(major(st.st_rdev)), QVariant(minor(st.st_rdev))})); -+ message.setArguments(fromRDev(st.st_rdev)); - m_bus.asyncCall(message); - } - close(fd); -diff --git main_wayland.cpp main_wayland.cpp -index b73ed09c9..a59dba849 100644 ---- main_wayland.cpp -+++ main_wayland.cpp -@@ -776,6 +776,15 @@ int main(int argc, char * argv[]) - a.platform()->setInitialOutputCount(outputCount); - - QObject::connect(&a, &KWin::Application::workspaceCreated, server, &KWin::WaylandServer::initWorkspace); -+ -+ // If startup doesn't complete within 20 seconds, exit rather than hanging -+ // around forever (e.g. if workspace creation can't happen due to DBus errors) -+ QTimer* startupTimeout = new QTimer; -+ QObject::connect(startupTimeout, &QTimer::timeout, [&](){ a.exit(2); }); -+ QObject::connect(&a, &KWin::Application::workspaceCreated, [&](){ startupTimeout->stop(); delete startupTimeout; }); -+ startupTimeout->setSingleShot(true); -+ startupTimeout->start(std::chrono::seconds(20)); -+ - if (!server->socketName().isEmpty()) { - environment.insert(QStringLiteral("WAYLAND_DISPLAY"), server->socketName()); - } -diff --git plugins/platforms/drm/drm_backend.cpp plugins/platforms/drm/drm_backend.cpp -index cdf4bf689..0eb6d45d3 100644 ---- plugins/platforms/drm/drm_backend.cpp -+++ plugins/platforms/drm/drm_backend.cpp -@@ -244,7 +244,7 @@ void DrmBackend::pageFlipHandler(int fd, unsigned int frame, unsigned int sec, u - - std::chrono::nanoseconds timestamp = convertTimestamp(gpu->presentationClock(), - CLOCK_MONOTONIC, -- { sec, usec * 1000 }); -+ { static_cast<time_t>(sec), static_cast<long>(usec * 1000) }); - if (timestamp == std::chrono::nanoseconds::zero()) { - qCDebug(KWIN_DRM, "Got invalid timestamp (sec: %u, usec: %u) on output %s", - sec, usec, qPrintable(output->name())); -diff --git tabletmodemanager.cpp tabletmodemanager.cpp -index e23d91ec0..3b20cc4b2 100644 ---- tabletmodemanager.cpp -+++ tabletmodemanager.cpp -@@ -60,9 +60,11 @@ public: - : QObject(parent) - , m_parent(parent) - { -- auto c = LibInput::Connection::self(); -- connect(c, &LibInput::Connection::deviceAdded, this, &TabletModeTouchpadRemovedSpy::refresh); -- connect(c, &LibInput::Connection::deviceRemoved, this, &TabletModeTouchpadRemovedSpy::refresh); -+ auto c = LibInput::Connection::self(); // May be nullptr -+ if (c) { -+ connect(c, &LibInput::Connection::deviceAdded, this, &TabletModeTouchpadRemovedSpy::refresh); -+ connect(c, &LibInput::Connection::deviceRemoved, this, &TabletModeTouchpadRemovedSpy::refresh); -+ } - - check(); - } |