Commit graph

26591 commits

Author SHA1 Message Date
Yifan Zhu
1a4606d990 scripting/windowmodel: match screen closest to center for filter
When filtering windows by screen, match the screen closest to the window
center, instead of testing whether the window is visible on the current
screen. The new method guarantees that when filtering by screen, the
window appears for exactly one screen. Previously windows spanning
multiple screens appear on all of them, and off-screen windows are not
shown in any screen.

BUG: 480028
BUG: 485337

FIXED-IN: 6.0.4
2024-04-11 09:36:26 -07:00
Vlad Zahorodnii
bf4c5241a0 backends/x11: Use correct allocator when using software rendering
The drm device will be null when using software rendering.
2024-04-11 16:36:46 +03:00
Vlad Zahorodnii
ab1350b6a6 wayland: Send data offer source actions only for dnd
It makes sense only with dnd and sending the source_actions events for
selections and primary selections tricks gtk into thinking that there
are drag motion events.

BUG: 464196
2024-04-11 08:21:06 +00:00
Yifan Zhu
9ca69cf50c screenedge: reset timer when pointer leaves edge
Currently the edge erroneously triggers when the pointer repeatedly
enters and leaves the edge in short durations. Send all events to edges,
and reset the timer when pointer leaves edge. Add corresponding test.

BUG: 441892
FIXED-IN: 6.0.4
2024-04-10 20:55:29 +00:00
Xaver Hugl
4c6000b3e1 core/syncobjtimeline: make explicit sync use SYNC_IOC_MERGE instead of waiting on the CPU side
This brings some performance benefits, because the application can potentially reuse
the buffer earlier, and it simplifies the code a bit
2024-04-10 19:06:01 +02:00
Xaver Hugl
32addf4d59 wayland: implement linux-drm-syncobj-v1
linux-drm-syncobj-v1 allows drivers and apps to synchronize KWin's buffer access
to their rendering, and synchronize their rendering to KWin's buffer release. This
fixes severe glitches with the proprietary NVidia driver and allows for some
performance improvements with Mesa too.
2024-04-10 19:06:00 +02:00
Natalie Clarius
672b662dd2 plugins/nightlight: add todo comment to rename config group key 2024-04-10 14:37:22 +00:00
David Redondo
1573d04b5a Mark windows for offsceen rendering in WindowThumbnailSource
This way if an effect wants to show such  window  that is for example
on a different virtual desktop it is updated live.
BUG:456280
FIXED-IN:6.0.4
2024-04-10 13:50:57 +00:00
Xaver Hugl
485769ddd9 plugins/zoom: limit the maximum zoom value to 100
Accidental changes in zoom can become very time consuming to undo otherwise.
With a value of 100, you can still zoom in far enough to only see a few pixels
on the screen, so it shouldn't break any actual use cases

BUG: 485192
2024-04-10 13:26:20 +02:00
l10n daemon script
cfe001df6f GIT_SILENT Sync po/docbooks with svn 2024-04-10 01:28:24 +00:00
Vlad Zahorodnii
2014f9a382 plugins/screencast: Remove irrelevant code
testCreateDmaBuf() is going to use the GbmGraphicsBufferAllocator under
the hood.

The GbmGraphicsBufferAllocator works as follows: if you pass it the
DRM_FORMAT_MOD_INVALID modifier, the resulting GraphicsBuffer is going
to have the invalid modifier as well. So the receivedModifiers check
is unnecessary.
2024-04-09 08:54:11 +00:00
Vlad Zahorodnii
00c1e9850b plugins/screencast: Clean up cursor metadata
Every caller of sendCursorData() is required to retrieve the
spa_meta_cursor object. But there's no good reason to do it, this can
be done by the sendCursorData() function.

Also, sendCursorData() is not a good name, it doesn't send anything.
Instead, it adds cursor metadata to the buffer.
2024-04-09 08:40:49 +00:00
l10n daemon script
f9e746dff6 GIT_SILENT Sync po/docbooks with svn 2024-04-09 01:28:17 +00:00
Vlad Zahorodnii
7d557784a1 plugins/screencast: Fix sizeof() of SPA_META_Header
At the moment, the sizeof the pointer is passed, but the size of the
struct must be passed instead.
2024-04-08 22:28:32 +00:00
Zack Rusin
15e23b825e backends/drm: Force software cursor on vmwgfx
The hardware cursor on vmware virtual machines is missing. This is
likely related to issues with importing DRM dumb buffers through
prime on vmwgfx.
Force software cursor on vmwgfx to make sure cursor is visible and
working properly until the hardware cursor is fixed.
2024-04-08 21:07:39 +00:00
Zack Rusin
17029cd54f backends/drm: Fix redraw issues on vmwgfx
Disable the readability checks when running on vmwgfx. The DMABuf syncs
seem broken on vmwgfx and until they're fixed disable the readablity
checks to actually let KDE propertly redraw when running on vmwgfx.
2024-04-08 21:07:39 +00:00
Zack Rusin
d20d84cfa3 backends/drm: Fix the closefb ioctl
The DRM_IOCTL_MODE_CLOSEFB ioctl takes a struct drm_mode_closefb as
argument and not the framebuffer id as integer.

That distinction is important because the kernel side explicitly
checks whether the padding in drm_mode_closefb has been correctly
initialized to zero:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/drm_framebuffer.c#n494

Use drm_mode_closefb and thus make sure the kernel side is not reading
garbage when testing the padding.
2024-04-08 21:07:39 +00:00
Nate Graham
61ca42cd2c Round all the things consistently
Now that we have Kirigami.Units.cornerRadius, there's a central source
of truth for corner radius so don't have to use random numbers for
these anymore.

Part of https://invent.kde.org/teams/vdg/issues/-/issues/45.
2024-04-08 16:56:50 +00:00
Xaver Hugl
c26101a9fe backends/drm: use a swapchain instead of an OpenGL texture for the shadow buffer(s)
This seems to have better performance on Intel GPUs, and allows us to implement damage
tracking for the shadow "buffer" in the future

CCBUG: 477223
2024-04-08 17:19:01 +02:00
l10n daemon script
786dc09704 GIT_SILENT Sync po/docbooks with svn 2024-04-08 01:27:19 +00:00
Jakob Petsovits
d9d733924c kcms/desktop: Move "Add" button and row count to header actions
I swapped the order of "Add" and row count because (in LTR layouts)
row captions are on the left and an "Add" button on the right sits
right on top of the "Remove" buttons in the list view.
2024-04-07 11:44:13 -04:00
l10n daemon script
9cd067e4fd GIT_SILENT Sync po/docbooks with svn 2024-04-07 01:26:27 +00:00
Xaver Hugl
b29b3db26d plugins/colorpicker: fix interaction with SDR brightness
Right now both source and target color descriptions have SDR brightness values,
and the target one gets used; in this case however the source brightness needs
to be used instead.

BUG: 484497
2024-04-06 13:28:08 +00:00
l10n daemon script
2dbf2dd995 GIT_SILENT Sync po/docbooks with svn 2024-04-06 01:26:54 +00:00
Yifan Zhu
c05a26f5c4 remove modifier only shortcuts
This is now implemented in kglobalacceld

BUG: 371560
2024-04-05 07:35:58 -07:00
Vlad Zahorodnii
693603d87a plugins/screencast: Unset spa_data::data for memfd buffers
The data pointer should be set mainly for SPA_DATA_MemPtr.
2024-04-05 12:06:42 +00:00
Vlad Zahorodnii
17c857ce66 plugins/screencast: Drop ScreenCastSource::hasAlphaChannel()
It's mainly unused.
2024-04-05 12:06:42 +00:00
Vlad Zahorodnii
c3c3b903b1 plugins/screencast: Refactor buffer management
Use GraphicsBuffers both for dmabuf and memfd code paths.
2024-04-05 12:06:42 +00:00
l10n daemon script
608cc0e7f8 GIT_SILENT Sync po/docbooks with svn 2024-04-05 01:24:39 +00:00
Ian Forbes
bd2728fac1 backend/drm: fix cursor hotspot enablement for virtualized drivers
DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT can only be set after DRM_CLIENT_CAP_ATOMIC
has been enabled.
2024-04-04 21:28:41 +00:00
David Redondo
9a74d70ba4 Fix build with newer QtWaylandScanner
Because of a shortcoming in upstream qtwaylandscanner and the cmake
macro we defered to the ecm macro which renames the output files
acoording to what qtwaylandscanner expects. However since this
was corrected in newer Qt this doesn't build anymore since
the tool now expects correctly named files.
2024-04-04 16:08:58 +00:00
Xaver Hugl
d9ee6d98ae backends/drm: support cropping with direct scanout 2024-04-04 15:28:53 +00:00
Xaver Hugl
4448e23363 backends/drm: remove amd cursor-only commit workaround
The workaround prevents cropping with direct scanout, and it's no longer necessary
because we force a software cursor with adaptive sync on AMD to work around a related
problem
2024-04-04 15:28:53 +00:00
Xaver Hugl
9c2035ca63 scene/workspacescene: fix direct scanout checks with subsurfaces
The check ignored that subsurfaces could be not visible, not mapped, and also below
the parent surface
2024-04-04 15:07:22 +00:00
Xaver Hugl
da34191115 backends/drm: actually prefer alpha formats again
The drm formats will never be the same, the intention was to check for bits
per color and bits per pixel
2024-04-04 13:51:05 +00:00
Aleix Pol Gonzalez
2b0b04235c wayland_server: Only check if there's an executable when we check permissions
There's not much point checking that we can convert an executable into a
file if we are not going to use that file.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-04-04 13:09:01 +00:00
Weng Xuetian
8c6ebee318
Fix inconsistent default keyboard delay value used in kwin.
plasma-desktop/keyboard/keyboardmiscsettings.kcfg has the default value
600. When default value (600) is set from kcm, kwin will wrongly use its
own default value in the code (660, which is most likely due to a typo when the
code is initially written).
2024-04-03 15:47:03 -07:00
Xaver Hugl
38e2bf34cf backends/drm: signal dmabuf feedback if an unsupported modifier is used
Otherwise the per-surface feedback never gets updated, and direct scanout fails
2024-04-03 15:13:37 +00:00
David Redondo
cbab4b46c1 Implement xdg-dialog-v1 2024-04-03 14:34:53 +00:00
Vlad Zahorodnii
baaa1db5d1 Guard against negative screen indices in Workspace::xineramaIndexToOutput() 2024-04-03 13:59:08 +00:00
Vlad Zahorodnii
883acb1f58 scene: Update surface texture in preprocess()
If two items display image data, the item renderer needs to special case
each item. It's not an extensible design, and my long term goal is to
introduce a separate tree specifically to solve this problem and also
help with computing the repaint damage automatically, instead of issuing
scheduleRepaint()s manually.

The first step is to refactor the item renderer so it merely takes the
input data and renders it. At the moment, it's not exactly the case
because surface textures are updated while painting the items, which
inherently requires special casing. This change moves surface texture
update code to the surface item so it's easier to refactor rendering code
in the item renderer.
2024-04-03 11:45:28 +00:00
Nate Graham
fdd338f02b Mark risky KNS content
By design, these categories of content can run arbitrary code on the
system. This makes them security-sensitive and risky, so we need to
inform the user about it.

Depends on https://invent.kde.org/frameworks/knewstuff/-/merge_requests/309
2024-04-03 10:45:57 +00:00
David Redondo
3d5e10e9bb Stop vendoring xdg-toplevel-drag 2024-04-03 09:27:46 +00:00
David Redondo
7f20621b25 Bump wayland-protocols to 1.34 2024-04-03 09:27:46 +00:00
Vlad Zahorodnii
57a79608da Disable freebsd ci
It's broken and it blocks normal workflow.
2024-04-03 11:02:54 +03:00
l10n daemon script
7c3a27fb43 GIT_SILENT Sync po/docbooks with svn 2024-04-03 01:28:26 +00:00
Ser Freeman
298a8ca8c5 XdgSurfaceWindow: Always update move resize geometry
Since interactive move resize logic has changed, there is
no need to guard maybeUpdateMoveResizeGeometry anymore.

BUG: 483309
2024-04-02 16:42:38 +00:00
Vlad Zahorodnii
7bb250826e wayland: Emit closed signal immediately after marking the window as closed
The main motivation is to give users a chance to perform their cleanup.
2024-04-02 15:34:15 +03:00
Vlad Zahorodnii
28d6b5230a Unset Window::tile() when the window is closed
If a window is closed, its geometry should not change. The window has to
leave its assigned tile so it's not possibly moved or resized.
2024-04-02 15:34:15 +03:00
Yifan Zhu
5272c24301 plugins/mousemark: clear drawing when no modifiers are pressed
Previously when drawing has length 1, it is not cleared. So the
remaining point in drawing can connect with the new point when the user
represses the modifiers, leading to a unexpected mark.

This ammends commit 46807b1a72.

BUG: 482297
2024-04-02 08:52:45 +00:00