Commit graph

26532 commits

Author SHA1 Message Date
Vlad Zahorodnii
5c2314a6bd plugins/screencast: Handle failing to import dmabuf 2024-03-27 15:41:54 +00:00
Nicolas Fella
9e9da67fc0 kcm/decoration: Port to ecm_add_qml_module and declarative type registration
This makes the types visible to QML tooling
2024-03-27 10:26:24 +00:00
Niccolò Venerandi
c8e0568022 Fix oversights on shortcut handling within Overview/Grid effect
BUG:482931
2024-03-27 10:01:15 +00:00
l10n daemon script
4be92db483 GIT_SILENT Sync po/docbooks with svn 2024-03-27 09:55:36 +00:00
l10n daemon script
bd84f1606d GIT_SILENT Sync po/docbooks with svn 2024-03-27 01:39:29 +00:00
Vlad Zahorodnii
8d3c06a178 plugins/screencast: Simplify damage calculation in region screen cast source
Whether the output is rotated should be irrelevant. The region screen
cast source handles scrapping fairly well blitting from rotated outputs.
2024-03-27 02:00:57 +02:00
Vlad Zahorodnii
d1fdb69946 plugins/screencast: Drop "stream" in ScreenCastStream::streamReady
The word "stream" is redundant.
2024-03-27 02:00:57 +02:00
Vlad Zahorodnii
cd2a4de82f plugins/screencast: Rename ScreenCastStream::stop() to close()
This is to help disambiguating between the code that shuts down the
stream completely and one that pauses/resumes the stream.
2024-03-27 02:00:57 +02:00
Vlad Zahorodnii
7894db7504 plugins/screencast: Pause/resume source when stream is paused/resumed 2024-03-27 02:00:55 +02:00
Vlad Zahorodnii
9d3e87bd9d tiles: Evacuate windows in CustomTile::remove() 2024-03-26 23:23:59 +00:00
Vlad Zahorodnii
ea9691a2f5 tiles: Use deleteLater() in CustomTile::remove()
Otherwise it seems that QQmlEngine can segfault.
2024-03-26 23:23:59 +00:00
Kevin Ottens
0bcb9a0ddd plugins/screencast: Indicate which stream is considered in debug logs
We can easily have several streams manipulated at the same time, this
helps to distinguish between them.
2024-03-26 23:09:25 +00:00
Kevin Ottens
399a955eb2 plugins/screencast: Add more debug about the format negociation with PW 2024-03-26 23:09:25 +00:00
Kevin Ottens
c310ba782a utils: drop the prefix param from drmFormatName 2024-03-26 23:09:25 +00:00
Xaver Hugl
d59451adcf effects/quickeffect: render qtquick scenes in the normal render pass
If they're rendered in prePaintScreen, the time needed to render them is not
accounted for in compositing scheduling, which may make KWin miss vblank

CCBUG: 482861
CCBUG: 452119
CCBUG: 482034
2024-03-26 17:06:07 +01:00
Xaver Hugl
5101579eb8 opengl: introduce makeCurrent and doneCurrent in OpenGlContext
... instead of them being specific to EglContext and GlxContext
2024-03-26 16:06:01 +01:00
l10n daemon script
8c8c5b9b0e GIT_SILENT Sync po/docbooks with svn 2024-03-26 01:39:06 +00:00
Vlad Zahorodnii
8428b4603c plugins/screencast: Neutralize stopped streams
Streams are deleted with QObject::deleteLater(), it's still possible to
process some events before the stream is actually destroyed, which can
cause problems.
2024-03-25 19:56:08 +00:00
Xaver Hugl
c6c99c1740 backends/wayland: don't clear the format map on tranche_done
It's not per tranche, it's global. Clearing the map means we ignore formats
from non-preferred tranches entirely
2024-03-25 13:19:01 +00:00
Xaver Hugl
686ea6374b backends/x11/standalone: port the egl backend away from AbstractEglBackend
This reduces the requirement on AbstractEglBackend to accomodate for X11
2024-03-25 12:52:31 +00:00
l10n daemon script
866afcb94b GIT_SILENT Sync po/docbooks with svn 2024-03-25 01:39:13 +00:00
Bart Ribbers
d71243aa07 Add missing include on sys/types.h to fix build on Musl libc
I guess sys/types.h is implicitely included on glibc but that's definitely
not the case on Musl libc. The include is however necessary to define
dev_t introduced in 3c82d5a919
2024-03-24 20:09:22 +01:00
Nate Graham
a2cccf0d75 Port to Kirigami version of ContextualHelpButton
It's been added there after starting life in kcmutils. Depends on
https://invent.kde.org/frameworks/kirigami/-/merge_requests/1488.
2024-03-24 15:56:00 +00:00
l10n daemon script
9b5ee76683 GIT_SILENT Sync po/docbooks with svn 2024-03-23 01:22:35 +00:00
Nicolas Fella
0fef229587 kcms/decoration: Fix crash when preview cannot be generated
m_bridge->createDecoration() can return nullptr. Most codepaths
already guard against that, but not all of them

BUG: 456531
2024-03-22 13:42:47 +01:00
Xaver Hugl
6a4a68dea4 backends: expose the DrmDevice instead of an allocator 2024-03-22 12:07:29 +01:00
Xaver Hugl
221c6aaf2b backends/virtual: use DrmDevice 2024-03-22 12:07:29 +01:00
Xaver Hugl
08439957d0 backends/x11/windowed: use DrmDevice 2024-03-22 12:07:29 +01:00
Xaver Hugl
fb19774730 backends/wayland: use DrmDevice 2024-03-22 12:07:29 +01:00
Xaver Hugl
d0b69f3503 backends/drm: use DrmDevice 2024-03-22 12:07:29 +01:00
Xaver Hugl
3c82d5a919 core: introduce DrmDevice 2024-03-22 12:07:29 +01:00
Vlad Zahorodnii
831ca28f93 plugins/screencast: Prefer allocating 3 buffers per stream by default
The current default 16 is way too many. For example, when screencasting
a 4K output, about 500MB will be wasted.
2024-03-22 08:30:47 +00:00
l10n daemon script
5777b3c257 GIT_SILENT Sync po/docbooks with svn 2024-03-22 01:21:31 +00:00
Vlad Zahorodnii
8bf1f9203b plugins/screenshot: Fix a crash in ScreenShotSource2::marshal()
There are behavior differences between QFutureInterface and QPromise.
The QFutureWatcher::finished() signal will be emitted in both cases
when the promise reports results or it is canceled.
2024-03-21 12:35:46 +00:00
Vlad Zahorodnii
489cd31ee9 Disable placeholder output when removing it
The current assumption is that Output::enabledChanged(false) always comes
before Output::destroyed.
2024-03-21 12:19:20 +02:00
David Edmundson
4f322e24d3 xwayland: Sync X11 keyboard tracking options between kcfg file and code
amends: a136a159f9
2024-03-21 08:16:15 +00:00
l10n daemon script
232984ebd5 GIT_SILENT Sync po/docbooks with svn 2024-03-21 01:24:14 +00:00
Yifan Zhu
111657ad04 x11window: round border size to integral XNative units
Both frameSize and clientSize are rounded to integral XNative units.
So their difference must also be rounded to integral XNative units.
Otherwise we get cycles of rounding that can cause growing window sizes.

BUG: 481460
2024-03-20 21:24:37 +00:00
Yifan Zhu
5c16cdd4ed globalshortcuts: send mouse events to kglobalacceld
This is needed so that kglobalacceld can correctly handle modifier-only
shortcuts.
2024-03-20 20:22:45 +00:00
Vlad Zahorodnii
012c64b054 Fix warning about nullptr sender in QObject::connect()
When one sets "no border" property, the decoration can be null.
2024-03-20 14:17:33 +00:00
Vlad Zahorodnii
236baa63df backends/drm: Handle failing to reopen drm node
Otherwise the drm backend will crash.
2024-03-20 14:07:33 +00:00
Vlad Zahorodnii
8934a31dad Add more guards for closed windows 2024-03-20 13:55:24 +00:00
Vlad Zahorodnii
442648edc0 wayland: Remove zombie ClientConnection from Display later
Otherwise it's theoretically possible to create a new ClientConnection
object for the zombie wl_client when its resources are being destroyed.
For example

- process early wl_client destroy notification
- the ClientConnection objects gets removed from the client list in Display
- process wl_resource objects getting destroyed
- if some code calls display->getConnection(zombie_client), it's going to
  reintroduce the client in the client list
- process late wl_client destroy notification, it's going to destroy the
  original and the clone ClientConnection object

This change prevents reintoducing a clone client object, by keeping the
original for a bit longer until it's actually destroyed. In the future though,
it would be great to kill the client lists in Display and ClientConnection,
and just use `static_cast<ClientConnection *>(wl_client_get_user_data())`.
2024-03-20 13:41:59 +00:00
Vlad Zahorodnii
44b72823c2 Don't trigger screen edge if the pointer is constrained
If the pointer is constrained, the screen edge may push the cursor back,
which will work not as expected. It's also undesired to trigger the screen
edge while the pointer is constrained by some surface, in general.
2024-03-20 13:46:00 +02:00
Vlad Zahorodnii
6412fd2c34 autotests: Add WM_TRANSIENT_FOR tests 2024-03-20 08:12:54 +00:00
l10n daemon script
b4b9a28b6f GIT_SILENT Sync po/docbooks with svn 2024-03-20 01:24:48 +00:00
Vlad Zahorodnii
a7e7923d6b plugins/screencast: Enqueue buffers immediately
There's still a crash in pw_stream_queue_buffer().
2024-03-19 20:32:46 +00:00
Xaver Hugl
630ba5fab4 pointer input: handle warp events differently from absolute motion events
As Wayland doesn't have a warp event yet, before this commit, warps were
dealt with like normal absolute motion events. This trips up games though,
which don't deal with actual absolute motion events well. As a solution
to that, until an actual warp event is a thing, we send a motion event with
a position + a relative motion event with no motion

BUG: 458233
CCBUG: 482476
2024-03-19 20:13:11 +01:00
Kristen McWilliam
246824aa61 autotests: add test for global keyboard shortcut
Adds an integration test that verifies the screen locks when the global keyboard shortcut is invoked.
2024-03-19 18:00:12 +00:00
Vlad Zahorodnii
60d36c0753 Move X11Window::findModal() to Window and remove boolean trap 2024-03-19 12:47:59 +00:00