Package: plasma-workspace / 4:6.3.6-2

Metadata

Package Version Patches format
plasma-workspace 4:6.3.6-2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
fix incorrect libplasma dependency version.patch | (download)

libcolorcorrect/LibColorCorrectConfig.cmake.in | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
relax interplasma versioned deps.patch | (download)

CMakeLists.txt | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
upstream_e4e0dee5_libkmpris allow MultiplexerModel to show actual player name.patch | (download)

applets/mediacontroller/package/contents/ui/ExpandedRepresentation.qml | 2 1 + 1 - 0 !
libkmpris/mpris2sourcemodel.cpp | 3 3 + 0 - 0 !
libkmpris/mpris2sourcemodel.h | 1 1 + 0 - 0 !
libkmpris/multiplexermodel.cpp | 4 2 + 2 - 0 !
4 files changed, 7 insertions(+), 3 deletions(-)

 [patch] libkmpris: allow multiplexermodel to show actual player name

The lock screen needs it to show the actual player name instead of
"Choose player automatically"

upstream_4f9b1a69_Fix Scroll Wheel issue in AllApps submenu of Application Dashboard.patch | (download)

applets/kicker/plugin/wheelinterceptor.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] fix scroll wheel issue in allapps submenu of application
 Dashboard

Scroll with mouse wheel was problematic in AllApps subsection. It worked
partially, abruptly stopping when hovering over app icons, or just
during mouse wheel scrolling.

The problem is that QQuick WheelInterceptor::findwheelArea() never entered
into its if statement because there are 3 children elements of QML parent,
and their z axis values are 1, 0, 0 respectfully.

BUG: 486481
FIXED-IN: 6.4.0

upstream_f17c2546_applets systemtray Open context menu on click when ItemIsMenu.patch | (download)

applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 [patch] applets/systemtray: open context menu on click when
 ItemIsMenu

As per StatusNotifierItem spec:

> The item only support the context menu, the visualization should
prefer showing the menu or sending ContextMenu() instead of Activate()

upstream_cf206f9d_applets notifications never use scientific notation for large numbers.patch | (download)

applets/notifications/package/contents/ui/components/JobDetails.qml | 9 6 + 3 - 0 !
1 file changed, 6 insertions(+), 3 deletions(-)

 [patch] applets/notifications: never use scientific notation for
 large numbers

Normal people don't know how to read it.

BUG: 422166
FIXED-IN: 6.4.0

upstream_73875471_applets appmenu Fix displaying menu of the previous active window.patch | (download)

applets/appmenu/plugin/appmenumodel.cpp | 115 63 + 52 - 0 !
1 file changed, 63 insertions(+), 52 deletions(-)

 [patch] applets/appmenu: fix displaying menu of the previous active
 window

We need to break the DBusMenuImporter::menuUpdated() signal connection
when the active window changes. Otherwise, it's possible that the
menuUpdated signal will be emitted and the menu will be marked as
available.

BUG: 473714

upstream_5d008e00_applets appmenu Store dbus menu importer in a std unique ptr.patch | (download)

applets/appmenu/plugin/appmenumodel.cpp | 26 8 + 18 - 0 !
applets/appmenu/plugin/appmenumodel.h | 2 1 + 1 - 0 !
2 files changed, 9 insertions(+), 19 deletions(-)

 [patch] applets/appmenu: store dbus menu importer in a
 std::unique_ptr

The code is simpler this way.

upstream_fbb2e6d3_users kcm Fix issue in sorting user list.patch | (download)

kcms/users/src/usermodel.cpp | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 [patch] users kcm: fix issue in sorting user list

If two users are logged in, the sorting order is not stable, both should be sorted before the other

Use partition instead of sorting, since we only care about having moved logged in users up front.

Found by: Kamil Kaznowski

upstream_9abfdd26_kcm users refine deleting logged in user UX.patch | (download)

kcms/users/src/CMakeLists.txt | 1 1 + 0 - 0 !
kcms/users/src/ui/UserDetailsPage.qml | 46 40 + 6 - 0 !
kcms/users/src/ui/main.qml | 2 1 + 1 - 0 !
kcms/users/src/user.cpp | 26 22 + 4 - 0 !
kcms/users/src/user.h | 7 6 + 1 - 0 !
kcms/users/src/usermodel.cpp | 11 7 + 4 - 0 !
kcms/users/src/usermodel.h | 3 2 + 1 - 0 !
7 files changed, 79 insertions(+), 17 deletions(-)

 [patch] kcm/users: refine "deleting logged-in user" ux

Right now there are two problems:
1. Deleting a logged-in user shows no warning about this.
2. Asking to delete the files of a logged-in user fails silently
   (AccountsService simply won't do it).

This commit solves both problems: now the user sees a warning dialog
when they try to delete another logged-in user, and it also prevents
them from trying to delete a logged-in user's files, instead redirecting
them to just delete the account but not the files.

To achieve this, I needed to change what the `loggedIn` property does,
because previously it was inaccurate, returning whether the queried user
is the currently logged-in user. Now it returns whether the quaried user
is logged in, and I added a new `isMe` property to hold whether the
queried user is the currently logged-in user.

BUG: 495494
FIXED-IN: 6.4.0

upstream_c9ee2931_kcm regionandlang add locale C to mapping and always set LANG and LC .patch | (download)

kcms/region_language/kcmregionandlang.cpp | 8 2 + 6 - 0 !
kcms/region_language/languagelistmodel.cpp | 2 1 + 1 - 0 !
kcms/region_language/optionsmodel.cpp | 24 3 + 21 - 0 !
kcms/region_language/regionandlangsettings.cpp | 24 16 + 8 - 0 !
kcms/region_language/regionandlangsettings.h | 2 1 + 1 - 0 !
kcms/region_language/regionandlangsettingsbase.kcfg | 4 0 + 4 - 0 !
6 files changed, 23 insertions(+), 41 deletions(-)

 [patch] kcm_regionandlang: add locale c to mapping and always set
 LANG and LC_*

BUG: 500432

Add locale C to glibc mappings so that locale C is actually saved to config file

Also set LC_* whenever LANG is set, this ensure LC_* are always up to date. In previous logic, LC_* can become out of sync if user change LANG to something else than changed it back.

upstream_a83c4e5f_applets devicenotifier check if device has been added before.patch | (download)

applets/devicenotifier/plugin/devicecontrol.cpp | 6 6 + 0 - 0 !
1 file changed, 6 insertions(+)

 [patch] applets/devicenotifier: check if device has been added before

BUG: 495140

Skip device if applet already has device with similar udi

upstream_2c27c9db_applets notifications don t allow horizontal scrolling.patch | (download)

applets/notifications/package/contents/ui/delegates/DelegatePopup.qml | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 [patch] applets/notifications: don't allow horizontal scrolling

Notification bodies have their width constrained by the notification and
the horizontal scrollbar forced off, but they can still be scrolled with
a horizontal wheel, touchpad, or similiar. This is surprising and
pointless.

Instead explicitly set the contentWidth, which is otherwise ultimately
based on the underlying TextEdit (and that's the width it would have on
a single line without wrapping).

upstream_9e0939c1_Warn user about full storage in any device partition.patch | (download)

freespacenotifier/CMakeLists.txt | 2 1 + 1 - 0 !
freespacenotifier/freespacenotifier.cpp | 73 34 + 39 - 0 !
freespacenotifier/freespacenotifier.h | 3 2 + 1 - 0 !
freespacenotifier/freespacenotifier.kcfg | 14 10 + 4 - 0 !
freespacenotifier/freespacenotifier_prefs_base.ui | 69 47 + 22 - 0 !
freespacenotifier/module.cpp | 93 81 + 12 - 0 !
freespacenotifier/module.h | 7 7 + 0 - 0 !
freespacenotifier/settings.kcfgc | 2 1 + 1 - 0 !
8 files changed, 183 insertions(+), 80 deletions(-)

 [patch] warn user about full storage in any device/partition

Currently, we only check for home and / partitions to be full
when warning user. With this commit we instead check for all
partitions / devices that are mounted and not read only.

Co-authored-by: David Edmundson <kde@davidedmundson.co.uk>

upstream_6d12cde3_wallpapers image Fix thumbnails not matching output size.patch | (download)

wallpapers/image/imagepackage/contents/ui/config.qml | 9 4 + 5 - 0 !
1 file changed, 4 insertions(+), 5 deletions(-)

 [patch] wallpapers/image: fix thumbnails not matching output size

The `Screen` is an attached property and it never changes, we need to
monitor screen size changes instead.

BUG: 483097


(cherry picked from commit d6436e077c05abd100d905aaa73222a48ca1695f)

7678dfa9 wallpapers/image: Fix thumbnails not matching output size
5f4d8bc8 Apply 1 suggestion(s) to 1 file(s)

Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>

upstream_8845c001_shell Osd Fix missing RTL.patch | (download)

lookandfeel/org.kde.breeze/contents/osd/Osd.qml | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 [patch] shell/osd: fix missing rtl plasmacore.dialog does not set
 LayoutMirroring for us, so we need to do it ourselves.

BUG: 503255

upstream_142caad0_applets notification fix fullRepresentation only widgets.patch | (download)

applets/notifications/package/contents/ui/main.qml | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] applets/notification: fix fullrepresentation-only widgets

The fullRepresentation has a little efficiency trick: it unloads the
model while it is not expanded, so the ListView does not need to be
updated while it is not visible. In general this is fine, but it
interacts very badly with attempts to put the fullRepresentation
directly on the desktop (or in a very large panel) and the auto-closing
functionality of the notification applet. When the notification history
ever becomes empty, it tries to close the fullRepresentation by setting
expanded to false, which by itself does not do any harm either (the
fullRepresentation stays a fullRepresentation), but it does unload the
model, so the history never updates again (unless the user manually
resizes it to become too small for the fullRepresentation then back
again, which resets it to its proper expanded state).

Instead, we modify closePlasmoid() to only set expanded to false if the
widget is below either switchWidth or switchHeight.

BUG: 503815
FIXED-IN: 6.4.0

upstream_d4df9b5f_applets systemmonitor handle null faceController.patch | (download)

applets/systemmonitor/systemmonitor/package/contents/ui/main.qml | 8 4 + 4 - 0 !
1 file changed, 4 insertions(+), 4 deletions(-)

 [patch] applets/systemmonitor: handle null facecontroller

When initially adding a systemmonitor widget to a panel, faceController
can still be null, causing several TypeErrors.

Instead, use optional chaining and default values to prevent these
errors until the faceController is loaded.

upstream_b9bc83c6_applets systemmonitor skip configure button on sensorless faces.patch | (download)

applets/systemmonitor/systemmonitor/package/contents/ui/main.qml | 7 6 + 1 - 0 !
1 file changed, 6 insertions(+), 1 deletion(-)

 [patch] applets/systemmonitor: skip configure button on sensorless
 faces

Some faces don't need sensors as they have their data included already,
namely Process Table and Application Table. The applet does not take
this into account and keeps showing the "Configure" button.

Instead, don't show that button if one of these faces is the current
face.

BUG: 504335
FIXED-IN: 6.4.0


(cherry picked from commit 184e883786520d6a7494b4db69dad29d69ff63a6)

Co-authored-by: Christoph Wolk <cwo.kde@posteo.net>

upstream_45784326_libtaskmanager show Comment for launcher icons when appropriate.patch | (download)

libtaskmanager/tasktools.cpp | 22 18 + 4 - 0 !
1 file changed, 18 insertions(+), 4 deletions(-)

 [patch] libtaskmanager: show comment for launcher icons when
 appropriate

Right now, launcher icons get a caption equal to the app's GenericName,
if one is set in the metadata. If not, it gets no caption.

upstream_e9fd71d9_wallpapers image don t crash when removing usr share.patch | (download)

wallpapers/image/plugin/slidemodel.cpp | 10 5 + 5 - 0 !
1 file changed, 5 insertions(+), 5 deletions(-)

 [patch] wallpapers/image: don't crash when removing /usr/share

we delay addSourceModel when the source model is fully loaded,
but it might take a long time (ie adding /usr/share)

if then we remove it before it's done, we will have either an assert or a crash
in qconcatenatetablesmodel (depending if Qt asserts are turned on)

we can safely call addsourceModel immediately, so rowsInserted will be
forwarded as they come in

BUG:503593


(cherry picked from commit f584f1beb3aaafe36c328a761b8eea02b46f20c4)

f584f1be wallpapers/image: don't crash when removing /usr/share

Co-authored-by: Marco Martin <notmart@gmail.com>

upstream_88911e82_shell Rearrange the teardown order.patch | (download)

shell/main.cpp | 17 7 + 10 - 0 !
1 file changed, 7 insertions(+), 10 deletions(-)

 [patch] shell: rearrange the teardown order

At the moment, the ShellCorona is destroyed after the QApplication object.
Destroying something after the application object can lead to
unexpected results because most of the code is written with an assumption
that the app object and the associated objects, e.g. the qpa, are still
valid when the cleanup code runs.

This change puts the ShellCorona on the stack so the destruction order
looks as follows:

- destroy ShellCorona
- destroy QApplication

CCBUG: 487660


(cherry picked from commit e2326d7f9e752eb18411ef4c0bcd53b8f34e02c6)

Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>

upstream_01978f58_Do not track cache partitions with freespacenotifier.patch | (download)

freespacenotifier/module.cpp | 7 6 + 1 - 0 !
1 file changed, 6 insertions(+), 1 deletion(-)

 [patch] do not track cache partitions with freespacenotifier
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

BUG:504423


(cherry picked from commit f4a08099d0aae466f06f0094498cc593c8ce4532)

e033ef89 Do not track cache partitions with freespacenotifier
5203019a Apply 1 suggestion(s) to 1 file(s)

Co-authored-by: Niccol Venerandi <niccolo@venerandi.com>

upstream_f1605df4_Do not show logout screen when in lockscreen screensaver.patch | (download)

libkworkspace/sessionmanagement.cpp | 17 12 + 5 - 0 !
1 file changed, 12 insertions(+), 5 deletions(-)

 [patch] do not show logout screen when in lockscreen / screensaver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

BUG:504575


(cherry picked from commit ba7a8c16b7934fa23d3a44bb38667554e39996b7)

Co-authored-by: Niccol Venerandi <niccolo@venerandi.com>

upstream_8e6b79da_containmentlayoutmanager don t enter edit mode without activefocus.patch | (download)

components/containmentlayoutmanager/itemcontainer.cpp | 6 6 + 0 - 0 !
1 file changed, 6 insertions(+)

 [patch] containmentlayoutmanager: don't enter edit mode without
 activefocus

ItemContainer enters edit mode on pressAndHold for desktop widgets not
set to immutable. This causes a problem with menus that open on press -
the container will not receive further mouse events that now go to the
menu, so it still considers itself pressed and unmoved the whole time,
and goes into edit mode after a while, exiting the menu. This makes
on-press menus in desktop widgets borderline unusable, and even if the
user manages to be quick enough to activate the desired entry during the
pressAndHold duration, it'll still enter edit mode unless the user also
does a full click on the applet afterward.

We can circumvent this particular case relatively easily by listening to
the container's activefocus changes - the popup opening does not cause
a focusOut event, but it does take activeFocus away from the container,
so if we stop the timer in that case, it works out as it should.

CCBUG: 416909


(cherry picked from commit 3d9dd7fe1a664b6b4f20523d6c4425eb57dc6b4c)

Co-authored-by: Christoph Wolk <cwo.kde@posteo.net>

upstream_e2ae8f54_libtaskmanager fix move to activity when on almost all activities.patch | (download)

libtaskmanager/waylandtasksmodel.cpp | 10 5 + 5 - 0 !
1 file changed, 5 insertions(+), 5 deletions(-)

 [patch] libtaskmanager: fix "move to activity" when on almost all
 activities

Using the task manager to move windows to other activities works in
most circumstances, but fails under one condition: when a window is
already on all activities except the one that is being moved to, the
window instead ends up on all activities, and has to be moved to that
activity again to be only on that workspace. This is usually a rare edge
case, but very commonly happens when using exactly two activities,
namely always when moving a window from one activity to the other.

This is the result of some unusual api implementation details of
activities: a window being on all activities is represented by having
upstream_ab55c53e_applets kicker fix filenames containing in history.patch | (download)

applets/kicker/plugin/recentusagemodel.cpp | 8 5 + 3 - 0 !
1 file changed, 5 insertions(+), 3 deletions(-)

 [patch] applets/kicker: fix filenames containing # in history

Kicker takes the resource name as provided by PlasmaActivities.Stats and
interprets it as an URL, setting the 'file' url scheme if necessary.
This fails when the filenames contain a '#' character, as QUrl will
interpret them as url fragments if not percent-encoded (which they are
not for local files, but are for remote urls). This makes display and
opening of such files fail in both Kicker and Kickoff.

Instead, we test whether it's an absolute path (the local history
entries are) and if so, use QUrl.fromLocalFile to get the correct url.
This is also what PlasmaActivities.Stats does in ResultSet (which is
what the Task Manager uses, so everything works there already, but we
want a real model here).

BUG: 419449
BUG: 437960
FIXED-IN: 6.4.0


(cherry picked from commit c6c0a68416b5042032853a6f673bddbe475567b7)

Co-authored-by: Christoph Wolk <cwo.kde@posteo.net>

upstream_d286dce3_Klipper Remove local Configure Klipper action.patch | (download)

klipper/klipper.cpp | 6 0 + 6 - 0 !
1 file changed, 6 deletions(-)

 [patch] klipper: remove local configure klipper action

This action would cause the shortcuts configuration menu to show
both local and global shortcuts, which makes no sense due to
Klipper being a globally accessed application.

This action is only used in cases where Klipper will be it's own
application with a normal window, similar to applications like Dolphin,
Kate, etc.. But Klipper is never used this way.

Currently only place where you can use this action is the configuration
menu itself, where it does nothing, since the menu is already open.

So let's just remove it. This also makes sure users do not accidentally
select "Shortcut/Alternate" instead of "Global Shortcut/Alternate"
for their shortcuts. See the related bug for context.

BUG: 501632
FIXED-IN: 6.4.1


(cherry picked from commit 1d3fe2ac0c0e640f0b66ec1e1d34f0e0196bbd7d)

Co-authored-by: Akseli Lahtinen <akselmo@akselmo.dev>

upstream_a4e153b3_kcms feedback remove little hover icons.patch | (download)

kcms/feedback/ui/main.qml | 21 0 + 21 - 0 !
1 file changed, 21 deletions(-)

 [patch] kcms/feedback: remove little hover icons

These icons have an unclear purpose since they have no text, and the
same icons are not repeated elsewhere in the KCM's UI to provide some
clue as to their meaning or purpose. They only appear on hover and
can't be accessed on touch at all; let's just remove them to prevent
user confusion.

The backend code providing icons in the model is preserved in case we
ever want to do something else with icons in the future.

BUG: 505761
FIXED-IN: 6.4.1


(cherry picked from commit 3c277146c4ec44cde54988dcd6c70b17442ad5e9)

Co-authored-by: Nate Graham <nate@kde.org>

upstream_d1896f5a_applets kicker resolve non existing files to their url.patch | (download)

applets/kicker/plugin/kastatsfavoritesmodel.cpp | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 [patch] applets/kicker: resolve non-existing files to their url

Kicker's PAStats-based favorites do some normalization to, among others,
resolve symlinked files to their resolved path to reduce duplicates.
However, if the file doesn't exist, it essentially just gives up. This
is a problem when trying to remove favorites that were deleted: while
the un-favoriting in PAStats succeeds, kicker can't remove it from its
own model because it can't identify the file by its url if it doesn't
exist. So removed favorites confusingly stick around until the next
plasmashell restart.

Instead, we take the base url in that case - as the entries already have
gone through the process, the url is their real url anyway.

BUG: 402820
FIXED-IN: 6.4.1


(cherry picked from commit da244b8764cde5509598965f24804bbaa5e0939f)

Co-authored-by: Christoph Wolk <cwo.kde@posteo.net>

upstream_b2e80af5_Only resize width to fit date elements if they are visible.patch | (download)

applets/digital-clock/package/contents/ui/DigitalClock.qml | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] only resize width to fit date elements if they are visible

BUG:505614

upstream_ec837446_Do not emit OOM notifications on systemd services reload.patch | (download)

oom-notifier/module.cpp | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 [patch] do not emit oom notifications on systemd services reload

When systemd services are reloaded, systemd emits all PropertiesChanged signals for all units.

Comparing with the original signals these have a null MainPID, so we can use that to identify them and not emit a notification.

BUG: 502279


(cherry picked from commit ce33b24d4f1b5711f7585b33822ab87f2f43af0b)

ce33b24d Do not emit OOM notifications on systemd services reload

Co-authored-by: Antonio Rojas <arojas@archlinux.org>