Commit graph

26698 commits

Author SHA1 Message Date
Nate Graham
43c21c390b kcms/desktop: re-add separator line between scrollview and controls
The extraFooterTopPadding property used to do this is now somewhat
incoherent, but we're stuck with it until KF7.
2024-05-11 14:19:57 -06:00
David Edmundson
013e69988f Reconnect Pipewire on Failure
Our connection to pipewire can go down if the pipewire service restarts, it's on us to tear down and reconnect.
To ensure Streams can tear down on their own properly, this patch leaves existing streams with a defunct connection
and creates a new connection for new streams, sharing the connection between them.

This also implicitly fixes the case for distributions without working socket activation.

BUG: 483137
2024-05-10 14:35:11 +00:00
Kai Uwe Broulik
ba8c52564e workspace: Don't activate desktop window when it gets added
Unless there is no focus window. Matches X11 behavior.

Otherwise (re)starting plasmashell would pull focus away from
whatever window is currently focussed.
2024-05-10 09:51:56 +02:00
l10n daemon script
ef41fa8e8f GIT_SILENT Sync po/docbooks with svn 2024-05-10 01:27:48 +00:00
l10n daemon script
4c144958c7 GIT_SILENT Sync po/docbooks with svn 2024-05-09 01:33:27 +00:00
l10n daemon script
2dd71603dd 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"
2024-05-09 01:18:28 +00:00
l10n daemon script
b2e1ede6e5 GIT_SILENT Sync po/docbooks with svn 2024-05-08 01:33:48 +00:00
l10n daemon script
ea5b79dbf6 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"
2024-05-08 01:18:43 +00:00
Xaver Hugl
01f3f185d8 backends/drm: allow using the EDID primaries and whitepoint as the color profile
They're usually close enough, so this allows users with wide color gamut screens to
get non-oversaturated colors without having to profile the screen
2024-05-07 13:52:35 +00:00
Pau López
c41315564c effect: Fix clip region in AnimationEffect 2024-05-07 10:45:00 +00:00
l10n daemon script
46f5951820 GIT_SILENT Sync po/docbooks with svn 2024-05-07 01:27:36 +00:00
Natalie Clarius
6ec7e919fb plugins/nightlight: clarify strings for inhibition
To clarify that the toggle action merely temporarily disables the blue light filter, rather than turning the schedule off permanently like the "Disbaled" setting in the KCM does, use "suspend/resume" terminology instead of "off/on" in the keyboard shortcut and OSD.

Follow-up on plasma-workspace!4262

CCBUG: 486647
2024-05-07 01:14:30 +02:00
Aleix Pol Gonzalez
24807dfa50 backends/drm: Also get the range for signed range properties
Otherwise these default to -1 which isn't helpful

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-05-06 16:06:32 +00:00
Aleix Pol Gonzalez
d55fa39ebf backends/drm: Add a check for ranged properties
Include a warning if we are ever setting an invalid value, this can save
some of us quite some time in the future, since failing to fall in the
range makes the whole pipeline become rejected.
2024-05-06 08:47:41 +00:00
Aleix Pol Gonzalez
0db46e3966 backends/drm: Make sure we respect the alpha property range
This is in part a workaround for an issue in Qualcomm drivers where the
range for alpha is 0-UINT8_MAX (255). We were setting a value too big
and this would make the whole pipeline fail.

Instead set the top of the property range which is what we were doing
after all, resulting in more explicit code to what we were trying to
achieve.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-05-06 08:47:41 +00:00
l10n daemon script
b3f7924539 GIT_SILENT Sync po/docbooks with svn 2024-05-06 01:28:47 +00:00
l10n daemon script
cac430fdbb GIT_SILENT Sync po/docbooks with svn 2024-05-04 01:37:13 +00:00
Vyacheslav Mayorov
4e01d2c8b7 workspace: fix syncing the stacking order with Xorg
Deleted windows have frameId zero, which makes Xorg stack other windows
below the bottom-most window instead of the correct one. To avoid that,
filter out deleted windows in Workspace::propagateWindows.

BUG: 478556
2024-05-03 20:00:19 +03:00
Xaver Hugl
33fe211471 placementtracker: fix restoring of windows in custom tiles
There were two problems preventing it from working:
1. The placement tracker didn't handle them correctly; now it sets the custom tile mode
after moving the window to its location
2. The window code used `output()` instead of `moveResizeOutput()`, which means when KWin
just moved the window to a different screen and immediately changes the tile mode
afterwards, it would tile the window on the wrong output
2024-05-03 16:47:47 +02:00
Xaver Hugl
14c08422ca placementtracker: fix quick tiled windows not being restored correctly
There were two problems:
1. Workspace interacted with the tile mode of windows before inhibiting
the placement tracker, so the wrong window state was stored in the placement
tracker
2. Window::setQuickTileMode is unintuitive and has some undesired side effects,
meant to handle quick tiling with keyboard shortcuts and by dragging the
window with a mouse specifically. This commit just works around that by
un-setting the tile mode first

BUG: 461886
2024-05-03 15:58:17 +02:00
Xaver Hugl
df9f8f8346 fix vertically maximized windows sometimes being moved out of the screen
...and add a test for it

BUG: 476037
2024-05-03 13:45:18 +00:00
Xaver Hugl
fb28d75ad8 placementtracker: fix vertically maximized windows being misplaced
...and extend the autotest to cover that situation.

CCBUG: 476037
2024-05-03 13:45:18 +00:00
l10n daemon script
6a44cce527 GIT_SILENT Sync po/docbooks with svn 2024-05-03 01:26:34 +00:00
Xaver Hugl
219f110093 backends: move render time queries into OutputFrame
This way, multiple OutputFrames can be pending at the same time, without
interfering in each other's render time queries
2024-05-02 13:03:27 +00:00
Vlad Zahorodnii
4470e82baa xwayland: Prevent kwin crashing when an xwayland socket cannot be created
If the X11 socket directory has wrong permissions, XwaylandSocket will
refuse to create sockets. Crashing in that case is undesired, just continue
executing without X.
2024-05-02 12:55:47 +00:00
David Redondo
c8de1aa677 Revert "Disable freebsd ci"
This reverts commit 57a79608da.
2024-05-02 09:39:13 +00:00
l10n daemon script
11cd27c793 GIT_SILENT Sync po/docbooks with svn 2024-05-01 01:24:50 +00:00
Arsen Arsenović
5980945ee4
dpmsinputeventfilter: Don't wake screens up on warp events
As pointer warps are not user interactions, they should not wake screens
up.

BUG: 480026
2024-04-30 19:01:15 +02:00
Arsen Arsenović
38c4980b0d
backends/drm: Prevent "recently disconnected" screen wakeup more aggressively
It seems that, on some systems (such as on mine), 1s is not long enough
for a spurious disconnect and reconnect to happen.  2s seems enough,
however, while still likely not being long enough to cause user
confusion.

BUG: 480026
2024-04-30 19:01:11 +02:00
Vlad Zahorodnii
6acc652487 Rework how geometry updates blocking is handled in X11Window
Process the geometry update as usual but just avoid confuguring the x
windows. It simplifies the implementation of the move resize function
and makes it more refactorable.
2024-04-30 14:28:27 +00:00
Vlad Zahorodnii
801fecf821 Port some X11Window code away from GeometryUpdatesBlocker
GeometryUpdatesBlocker is unnecessary. One could just compute the
final geometry on a side and then issue one moveResize() rather than
call move(); resize(); moveResize() and so on in a sequence. The
advantage of the former approach over the latter is that the code
can be a bit more straightforward.
2024-04-30 14:20:59 +00:00
Vlad Zahorodnii
8f0425d91c Remove geometry updates blockers in X11Window teardown code
When a window is closed, its geometry should not change, so the geometry
updates blockers are not needed. There's also no code that could potentially
change the geometry in destroyWindow() or releaseWindow().
2024-04-30 14:06:49 +00:00
Xaver Hugl
93d810aaad backends/drm: unify primary and cursor plane layers
Drm planes aren't specialized enough to need completely separate code paths to
handle them, and having one class for all layers makes it easier to add support
for overlay planes
2024-04-30 13:43:36 +00:00
Xaver Hugl
a7e26a5770 backends/wayland: remove m_output member
It's in the base class now
2024-04-30 11:45:57 +00:00
Xaver Hugl
b976c274fd workspace: don't touch output configs on Xorg
It sets some output properties that don't match what Xorg knows about the outputs,
which may cause problems

CCBUG: 477268
2024-04-30 11:38:27 +00:00
l10n daemon script
aabadcee6d GIT_SILENT Sync po/docbooks with svn 2024-04-30 01:26:46 +00:00
Aleix Pol Gonzalez
04643fa3d8 Workspace: only calculate the clientArea for the wayland window when necessary
No need to calculate it just to discard it.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-04-29 21:41:49 +00:00
Aleix Pol Gonzalez
7916352f5b wayland: skip the outputs refresh if they didn't change
We have a bunch of logic in there that is effectively no-op if the
values don't change. We might as well skip it altogether and save some
code from being run to do nothing.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-04-29 21:41:49 +00:00
Vlad Zahorodnii
cdbe119789 Make GeometryUpdatesBlocker X11-specific
It's used only by X11Window so move it there.
2024-04-29 17:58:05 +03:00
Vlad Zahorodnii
b2193f370d Drop the remaining geometry updates blockers in Window
While these geometry updates blockers are used in functions that can
call moveResize() several times in a row, it's not critical.

On the other hand, by removing these blockers, no other core code is
going to rely on GeometryUpdatesBlocker, which opens us the future
opportunitinies to drop it and make geometry manipulation code simpler.
2024-04-29 14:40:16 +00:00
Xaver Hugl
e4e5c52300 autotests/integration: clean up remnants of "active output follows mouse" setting in screenstest 2024-04-29 14:13:32 +00:00
Xaver Hugl
55e5d50074 autotests/integration: fix xdg shell test
It made now-invalid assumptions about how the active output is decided
2024-04-29 14:13:32 +00:00
Xaver Hugl
354a71855e workspace: unify active screen modes
Instead of the active screen being purely defined by the mouse position,
or purely defined by the active window and keyboard shortcuts, this changes
it to make the active screen all about the last user interaction. This should
work for most workflows without needing a setting to choose between two flawed
approaches.

BUG: 482865
BUG: 484902
BUG: 484902
2024-04-29 14:13:32 +00:00
Xaver Hugl
336b2fd2f6 backends/x11/standalone: remove the code that runs on return to the event loop
It's unclear why it would be needed
2024-04-29 14:13:32 +00:00
Xaver Hugl
26b15feb61 backends/x11/standalone: remove on-demand mouse polling
Instead, rely on XInput if available, and fall back to polling every 50ms if not
2024-04-29 14:13:32 +00:00
Xaver Hugl
20d5f9bc6e backends/drm: work around amdgpu bugs with DCC modifiers
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/10875 for details. The workaround
can be disabled again with the KWIN_DRM_NO_DCC_WORKAROUND=1 environment variable
2024-04-29 13:16:20 +00:00
Xaver Hugl
445567f54e backends: move more things from output layers to kwin core 2024-04-29 15:02:33 +02:00
Xaver Hugl
3232a63ac1 backends: put damage into OutputFrame, instead of passing it into the direct scanout function
This way, damage tracking for screen casting is a bit more decoupled from the output layers, and
can actually work for direct scanout
2024-04-29 15:00:12 +02:00
Xaver Hugl
06ba20cc2e compositor: move the composite method into X11 and Wayland implementations
There's a bunch of differences between them, like direct scanout, adaptive sync, content type
and the actually painted output in the Wayland session but not on Xorg, so keeping them in one
method doesn't really make sense
2024-04-29 14:56:20 +02:00
l10n daemon script
6b5571b023 GIT_SILENT Sync po/docbooks with svn 2024-04-29 01:27:07 +00:00