Commit graph

25981 commits

Author SHA1 Message Date
David Edmundson
5dc16fc614 x11: Avoid calls to workspace in OverlayWindow and sync GLX and EGL paths
OverlayWindow had different paths for GLX and EGL when it came to
managing size. On EGL the initial size comes from the overlay resizing
to workspace, but future updates were explicitly handled by the backend.
On GLX the backend tracked changes, but then it was the overlay's job to
resize but using a different method.

This patch also prevents use of workspace after destruction fixing
kwin_x11 --replace.
2023-12-13 09:33:31 +00:00
Vlad Zahorodnii
76fbea704a plugins/slidingpopups: Cancel animations when screen is locked/unlocked
BUG: 412104
2023-12-13 08:19:40 +00:00
l10n daemon script
89b4b1f4a5 GIT_SILENT Sync po/docbooks with svn 2023-12-13 02:14:49 +00:00
Vlad Zahorodnii
ef2c4e201e plugins/overview: Load milou on demand
Milou.ResultsView loads runners regardless whether the query string is
empty. It's not clear what milou should do. There are valid arguments
both in favor and against preloading runners.

This change puts Milou.ResultsView behind a Loader so milou is loaded
when it's actually needed and not when starting overview.

CCBUG: 455780
2023-12-12 15:21:23 +00:00
Niccolò Venerandi
667b95e240 Make window captions in Overview 2 lines at most
Captions are set to elide with ElideRight, which does allow for multi-line captions.
However, this means that the height of the captions depends on their width (since a shorter
width results in more lines), and the width of the captions depends on the size of the
window thumbnail, which depends on the height of the caption to be positioned. If the
caption is really long, this can cause visual glitches. Having a maximum line value avoids that.

BUG: 477103
2023-12-12 13:55:41 +00:00
l10n daemon script
5ddc0b26dd GIT_SILENT Sync po/docbooks with svn 2023-12-12 02:16:29 +00:00
l10n daemon script
47e7f6e06a 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"
2023-12-12 02:09:54 +00:00
Xaver Hugl
6f06bf1989 plugins/invert: support color management
To do this, this commit adds infrastructure to include glsl files,
extracts all the color management functions and uniforms into such a
file, and makes use of it in the invert effect

BUG: 443148
2023-12-11 22:46:27 +01:00
Xaver Hugl
8f7772da2e backends/drm: don't wait for pending pageflips on gpu hotunplug
The pageflip event may never arrive, as the GPU to trigger it is gone. It
also doesn't make a difference, as the GPU is unaccessible anyways, so
KWin can't affect the relevant output(s) anymore
2023-12-11 19:44:42 +00:00
Xaver Hugl
ef0c07d03a backends/drm: unify legacy and atomic modesetting code paths a bit 2023-12-11 19:44:42 +00:00
Xaver Hugl
d228dc173a xdgshellwindow: make maxSize always >= minSize by enforcing the same minimum
BUG: 478269
2023-12-11 18:07:13 +01:00
Xaver Hugl
63c71d9e56 wayland/xdgshell: enforce invalid_size errors
If the client sets invalid min or max size, that can cause some code in KWin
to assert. To ensure that doesn't happen, enforce that the minimum size is
always at most as big as the maximum.

CCBUG: 478269
2023-12-11 14:44:27 +01:00
l10n daemon script
b41ecc8a3f GIT_SILENT Sync po/docbooks with svn 2023-12-11 02:13:25 +00:00
l10n daemon script
d8c1022049 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"
2023-12-11 02:06:41 +00:00
Xaver Hugl
19672bc82f opengl/glshadermanager: fix version check for desktop gl
Apparently mix with bvec is only supported with glsl 1.30 on desktop gl
too
2023-12-10 04:29:51 +01:00
l10n daemon script
4decd392af GIT_SILENT Sync po/docbooks with svn 2023-12-10 02:53:01 +00:00
l10n daemon script
682d578093 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"
2023-12-10 02:30:44 +00:00
David Edmundson
5d922742fa Avoid additional FBO rendering the blurred background
WindowThumbnails are image providers meaning it can provide textures
directly to ShaderEffects

layer.enabled is effectively a ShaderEffectSource meaning we render our
single desktop background item into an offscreen texture to ultimately
contain our desktop background.

We can cut out the middle-man and use the DesktopBackground as a source
directly saving a massive texture being generated.
2023-12-09 12:43:55 +00:00
l10n daemon script
26505afbad GIT_SILENT Sync po/docbooks with svn 2023-12-09 02:13:33 +00:00
l10n daemon script
5805c047a8 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"
2023-12-09 02:07:58 +00:00
Xaver Hugl
4be57d78e9 opengl/glshadermanager: check opengl instead of glsl version
Whether or not mix with bvec is supported depends on the OpenGL version and
not on the glsl version
2023-12-08 20:06:30 +00:00
Xaver Hugl
5734342f9f plugins/zoom: disable acessibility integration on Wayland
It causes hangs, and thus doesn't actually help with accessibility but makes
it worse. Until that's fixed, it needs to stay disabled

BUG: 450940
2023-12-08 19:27:08 +00:00
Xaver Hugl
50899f3f34 backends/drm: work around atomic commits failing with NVidia
For some reason, when IN_FENCE_FD is set, the NVidia driver rejects the
commit. Until that's fixed in the driver, don't set the property

BUG: 478246
2023-12-08 16:27:24 +01:00
Vlad Zahorodnii
eb13085de2 plugins/overview: Load screen delegate asynchronously
The compilation step still takes a significant amount of time on the
first launch. On my machine, it's around 1s. Even if it happens just
once, freezing the session for 1 second is not great.

This change makes the overview effect load main.qml asynchronously
when plasma session starts. By the time the session is loaded, it should
be ready.

CCBUG: 455780
2023-12-08 13:40:53 +00:00
David Redondo
f25b8817d9 Update Qt version requirement to 6.6.0
GIT_SILENT
2023-12-08 12:10:27 +01:00
Vlad Zahorodnii
f1ff706b3b scripting: Cache WindowThumbnail textures
Effects like overview can create more than one thumbnail for the same
window. For example, if you have 4 virtual desktops, the overview is
going to create 9 window thumbnails for the desktop background, which in
its turn means that each thumbnail is going to have its own texture.
That's not great.

WindowThumbnailItem.sourceSize has been dropped because it's unused and
will complicate texture caching.

CCBUG: 455780
2023-12-08 10:21:20 +00:00
Vlad Zahorodnii
acd743f672 plugins/shakecursor: Avoid abrupt transition to 1x magnification
When the pointer moves, the shake cursor effect will either update the
cursor magnification or reset the magnification.

At the moment magnification is reset immediately, which doesn't look
if the pointer moves before the reset scale animation finishes.
2023-12-08 07:12:52 +00:00
l10n daemon script
6287315522 GIT_SILENT Sync po/docbooks with svn 2023-12-08 02:14:30 +00:00
Ismael Asensio
8b54372160 kcms/rules: Fix section header width
It is now necessary to explicitly set the ListSectionHeader width
as it inherits from ItemDelegate
2023-12-07 19:39:04 +01:00
Nate Graham
d3ece17dde kcms/rules: clip rules popup's list view
Otherwise it escapes!

BUG: 478170
2023-12-07 10:30:19 -07:00
Jonathan Esk-Riddell
0b5b361b4a Update version number for 5.90.90
GIT_SILENT
2023-12-07 16:40:47 +00:00
Vlad Zahorodnii
8e2d0a3d7e Load close button in WindowHeapDelegate on demand
Most windows are typically not hovered, so we don't need to create
a Button for every one of them.
2023-12-07 15:45:09 +00:00
Vlad Zahorodnii
71dd6bac78 tabbox/switchers/thumbnail_grid: Fix sync'ing currentIndex
The task switcher doesn't initialize thumbnailGridView.currentIndex
properly after the Plasma.Dialog has been just created.
2023-12-07 15:26:09 +00:00
Vlad Zahorodnii
ee24a44cc4 tabbox/switchers/thumbnail_grid: Load Plasma.Dialog on demand
This avoids keeping old and creating new window thumbnails after the task
switcher is hidden.
2023-12-07 15:26:09 +00:00
Vlad Zahorodnii
a7987f5a33 Change window highlight style in WindowHeapDelegate
Currently FrameSvgItem is used to highlight selected or hovered windows.
But the problem with it is that it's a bit heavyweight. As a way around
it, we could put it in a Loader, but that's going to be bring a set of
other challenges.

As an alternative solution, this change replaces FrameSvgItem with a
simple outline. It still produces decent visuals and it's simpler.
2023-12-07 15:02:01 +00:00
Xaver Hugl
4ad5670ddf backends/drm: set dma-fence deadlines if available
This tells the kernel when a buffer should be done rendering, which allows
it to for example increase GPU clocks in order to hopefully hit our deadlines.
That in turn should reduce the amount of dropped frames

CCBUG: 452119
2023-12-07 13:17:58 +00:00
Vlad Zahorodnii
1cd1047eba scripting: Don't block client until acquire fence is signaled in WindowThumbnailItem
We just need to ensure that qtquick rendering commands don't use the
window thumbnail until it's ready. The CPU can continue executing its
commands.
2023-12-07 12:29:37 +02:00
Vlad Zahorodnii
e89916a6ba Assign top-left screen corner to overview by default 2023-12-07 06:31:56 +00:00
l10n daemon script
07837fc823 GIT_SILENT Sync po/docbooks with svn 2023-12-07 02:18:45 +00:00
Xaver Hugl
b76c793d95 opengl/glshadermanager: work around GLES2 not supporting mix with bvec
BUG: 478144
2023-12-06 23:22:09 +00:00
Vlad Zahorodnii
1729dee3ef plugins/overview: Make transition between overview-grid modes longer
Otherwise it's barely visible.
2023-12-06 17:40:30 +00:00
Ismael Asensio
a26e66be4b kcms: Port away from SwipeListItem to ItemDelegate
Let's port the remaining uses to the upstream simpler alternative
`ItemDelegate`, which provides a consistent styling and fixes some
issues such as the background and highlighting.

This affects the rules, efects and virtual desktops KCMs.
2023-12-06 17:26:53 +01:00
Marco Martin
022214e411 Less concurrent animations
Overview was trying always to animate the opening with 2 animations at the same moment:

* the transition from initial to active in WindowHeapDelegate
* the animation on the partialactivationfactor was always ran, partial or not

this resulted in jankier animations than they could be.

now base only on partialanimationfactor, so we a re sure there is one single way to trigger the effect
2023-12-06 16:04:13 +00:00
Ismael Asensio
c16a5e355f kcm/rules: Fix OverlaySheet shadow coverage
Do not reparent the OverlaySheet's parent and let it be the
whole page, so that the shadow darkening also covers the empty
space below the view and the placeholder message

BUG: 477963
FIXED-IN: 5.91.0 (Beta2)
2023-12-06 15:41:20 +00:00
Aleix Pol Gonzalez
0527d301dd Address licence of plugin.h
The rest of the project is GPLv2, this one is GPLv3 for no apparent
reason. Even the .cpp file is GPLv2.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2023-12-06 15:49:00 +01:00
Vlad Zahorodnii
6eca078db9 Fix "Drag down to close" label visibility
It's visible by default but has 0 opacity, which results in unnecessary
relayouting. The opacity is vice versa as well.
2023-12-06 14:19:58 +00:00
Aleix Pol Gonzalez
62b379ea55 backends/drm: Fix build with older kernels
DMA_BUF_IOCTL_EXPORT_SYNC_FILE was only included some time ago in the
kernel.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2023-12-06 14:06:15 +01:00
David Edmundson
25f4732764 effects/overview: Avoid relaying text during animation
There is a window title beneat the stock WindowHeapDelegate. The label
was bound to the size of the window, but because this animates our label
resizes every frame too.

Given the label is only at full opacity when the window is filling the
ExpoCell, we can set the width of our label to that directly.

This looks less glitchy as we don't change wrapping during animation,
but also should have a noticable performance impact as we avoid
re-laying out multiple times.
2023-12-06 10:55:54 +00:00
Xaver Hugl
f3aaede382 backends/drm: properly handle neither CTM and gamma being supported
Instead of hardcoding only NVidia, try to use CTM and GAMMA_LUT before falling
back to the shader path. This way it also works on other GPUs that lack
color management hardware, and only falls back to the color management path
on older NVidia drivers.

This commit also ensures that the color management hardware is set properly
after toggling color management on and off again, and simplifies ColorDevice
to only deal with rgb factors instead of always calculating luts. This should
improve performance of night color animations on hardware where CTMs are
supported

CCBUG: 453701
2023-12-06 10:32:49 +01:00
Xaver Hugl
4ec8430a4b backends/drm: fix vrr being wrongly assumed disabled with cursor movement 2023-12-06 08:34:55 +01:00