The prefered is to show context menu on mouse pressed event, not click,
but this causes few issues for SNI.
Some legacy applications still relies on XEmbed to show tray icon.
We use xembedsniproxy to relay the mouse press signals to the XEmbed client
but some applications (including GTK) validate the mouse state.
Mouse released state is expected, but as it is still pressed context
menu does not show.
BUG: 409768
FIXED-IN: 5.24.3
QProcess::start defaults to capturing all output, but that got lost as it is
never read. Set QProcess::ForwardedChannels explicitly where it was missing,
so that output ends up in the correct place again.
Unlike when the clock is in a panel, there is plenty of space when it is
on the desktop. This means that we can safely let the date string word
wrap rather than shrink.
BUG: 450632
FIXED-IN: 5.24.3
When more than one user is shown on the login screen, username labels
are limited to the width of the avatar so they don't overlap one
another. However they are not allowed to become multi-line strings, so
they can get elided if they are not somewhat short. This was worsened
recently by a change in Plasma 5.24 to increase the size of the
username labels, which shortened the amount of text that can be seen
without eliding.
This commit fixes that problem by allowing constrained username labels
to become multi-line strings with up to 3 lines, and adjusting the
surrounding layout to visually accommodate this.
BUG: 450673
FIXED-IN: 5.24.3
745e2c0828 made DesktopView set clear
color to "black" so the compositor could avoid overdraw and thus
optimizing rendering. In the perfect world, such a change would create
no regressions, but for some reason, it made panels lose alpha channel
on X11.
That makes absolutely no any sense. DesktopView and PanelView are two
totally different code paths. So changes in DesktopView should not
affect the PanelView. This looks like a QtXCB bug.
Ideally, we should add workarounds only after finding what creates a
problem, but this one is particularly hard because many people who have
tried to reproduce that issue weren't successful. Somebody who can
reproduce the issue would have to be able to build Qt from source code
and add qDebug()s. These requirements are too steep, thus adding a
platform check seems like the best option at the moment.
BUG: 450672
index desktop views by qscreen instead of id, making ScreenPool
the single source of truth for the mapping between screen names
and ids. This is less error prone and easier to consistency check
(if view->screenToFollow() is ever different to its has key it will
assert)
The whole logic of screen management is moved to ScreenPool.
ShellCorona will have to never call QGuiApp->screens, but only trust what ScreenPool it's telling it
Also adds an autotests on screenpool which makes a fake wayland server which sends screen added/removed/changed events
1. Don't change the current item when not saving it.
2. Use Qt.callLater as the item will be moved to the top after saving
it, and we would like to hightlight the real first item.
when creating or deleting a user is not enough to pop the old page,
but a new user needs to be selected (either the newly created one or the
one just on top of the deleted one) so that the kcm doesn't stay
half empty with an ui that looks broken
BUG:450182
On multiscreen (seems to happen only on X11 so far) when screen are
added and moved, sometimes the panel gets moved by the window manager
ending up out of screen boundaries, leaving a screen without panel
a common scenario is:
laptop with external screen connected, panel on internal screen,
close the lid, everything gets moved to the external screen,
the panel will stay out of screen boundaries, but the panel struts are correct
CCBUG:438114
With the keyboard navigation patch there is the issue that sometimes,
due to sorting by SortFilterModel, the stack order of the items doesn't
correspond to the visual order of the items.
This is a problem wrt the recently introduced keyboard navigation, as
the tab order of items in qml is completely tied to the stack order,
resulting in an erratic tab navigation order (usually happens with
device notifier or bluetooth applets for instance)
Get rid of the delayed optimal size calculation caused by Qt.callLater
and calculate optimal size immediately when an applet's size changes.
This removes the unnecessary jumping of applets that are centered between 2
spacers.
BUG: 431668
FIXED-IN: 5.24.2
Since the DesktopView has "transparent" clear color, it will allocate a
buffer with an alpha channel and QtWayland won't be able to set an
opaque region. This change sets the clear color of DesktopView to "black"
so overdraw can be fixed in kwin and to improve render performance on
wayland.
Kernel developers have said that charge limits are approximate, not
exact[1]. As a result, if for example you have a charge limit of 80%,
your battery might actually stop charging anywhere between 78-82%. But
if we only list the charge limit itself, it looks to users like a KDE
bug when the battery stops charging at any number other than that limit.
To alleviate that, this commit adjusts the text to indicate that the
charge limit is appropximate.
[1] https://bugzilla.kernel.org/show_bug.cgi?id=215531#c3
Right now we change the intensity of shadows based on the color scheme's
text color, but with a property called "lightBackground". This indicates
that we wanted to do it based on the background color itself, but did
not or could not, so settled on using the text color as a proxy. However
this is wrong; there is no relationship between the active color
scheme's text color and the color of the background image.
Even if we could or did fix that, it would probably still be wrong,
because using lighter shadows on a genuinely light background would
result in worse contrast and readability, especially if the light
background was very visually busy.
For these reasons, in most other places, we have since settled on the
mantra of "shadows should be black", and this commit makes the lock and
login screens follow that convention as well.
BUG: 449985
FIXED-IN: 5.24.2
I cross-compiling for the recently released Arm Morello boards and the
QtQml debugger is not yet compatible with CHERI-enabled architectures so
I had to build QtQml with -no-qml-debug.
Creating and deleting users needs that too
This also means that we need to be more correct with the types passed into the DBus calls since with passing the args as list we don't get implicit conversion to the correct type any more
BUG: 450122
FIXED-IN: 5.24.2
This commit gives the accent-overridden pieces of the color scheme overridden
foregrounds as well, preventing readability issues with accents and certain color
schemes when paired up. Additionally, this MR will also prevent readability issues
with lighter colors as the text color is determined between being black or white
by the color's luminosity, aka brightness.
In addition, color schemes can be marked as applying the accent color to active
and/or inactive titlebars. This is exposed to theme creators and can be changed by
users as well.