Commit graph

26873 commits

Author SHA1 Message Date
Xaver Hugl
1e3d50e3ff core/renderloop: support triple buffering
When rendering a frame takes longer than a refresh period, allow rendering to
happen before the previous frame is presented. This way the effective refresh
rate is increased, without increasing latency or impacting frame pacing more
than necessary
2024-05-24 17:32:20 +02:00
Xaver Hugl
0c4f46739d backends/drm: store OutputFrames in the commit objects
That way, multiple frames in flight can be tracked correctly
2024-05-24 17:32:20 +02:00
Xaver Hugl
df9b0bd8f0 backends: move output refresh duration to compositor 2024-05-24 17:32:20 +02:00
Jonathan Riddell
3ebbe28b64 update version for new release 2024-05-24 16:14:01 +01:00
David Edmundson
5362105f27 plugins/desktopchangeosd: Port to simpler PlasmaWindow
Plasma::Dialog contains logic that we don't want for a kwin window and
is considered deprecated. Dialog uses the width of the main item which
results in an unavoidable binding loop.

PlasmaWindow allows us to propagate implicit sizes upwards correctly.

BUG: 420757
2024-05-24 12:51:46 +00:00
Jonathan Riddell
572e07b130 Update Qt version requirement to 6.6.0
GIT_SILENT
2024-05-24 13:11:44 +01:00
Jonathan Riddell
01d3f22633 update version for new release 2024-05-24 12:32:27 +01:00
Jonathan Riddell
5e79956933 Update Qt version requirement to 6.7.0
GIT_SILENT
2024-05-24 11:22:28 +01:00
Jonathan Riddell
1ab1a5f297 Update Frameworks version requirement to 6.2.0
GIT_SILENT
2024-05-24 11:22:28 +01:00
l10n daemon script
14bbe38b31 GIT_SILENT Sync po/docbooks with svn 2024-05-24 01:31:11 +00:00
Vlad Zahorodnii
7b547bf61d Apply 1 suggestion(s) to 1 file(s) 2024-05-23 15:01:42 +00:00
David Edmundson
e7e6dee79b xwayland: Update Qt key enums 2024-05-23 15:01:37 +00:00
Vlad Zahorodnii
dd36387c1f Pass all key events to kglobalacceld
kglobalacceld needs to process all key events to detect whether
a modifier only shortcut has been triggered.

On the other hand, when using Meta+Space keyboard layout switching
shortcut, we will get the following key syms (not native scan codes)

- press meta: Meta_L
- press spacebar: Super_L
- release meta: Meta_L
- release spacebar: Space

The fact that xkb reports Super_L when the spacebar is pressed trips
modifier only shortcut detection in kglobalacceld, and it's likely
that kickoff will open after pressing Meta+Space to switch the keyboard
layout.

In order to prevent that, kglobalacceld needs to see all key events
even with invalid key codes. As an alternative, we could explore the
possibility of using native scan codes instead of mapping keysyms to
key codes, but that needs thorough analysis, which we have no time
for.

The check was introduced in 4403e86acc.
After that check is removed, the test still passes.
2024-05-23 10:58:16 +00:00
David Redondo
d737d1dbcb Add support for input capturing for the portal
This is the backend that will be used by the portal to enable
the functionality of the input capture portal.
When the cursor tries to move out of the workarea across a barrier
that the portal registered all input events are filtered out
and forwarded via eis.
2024-05-23 09:17:14 +00:00
David Edmundson
84633badc7 effects: Support dynamic delegate changes whilst running
The cube effect has a placeholder which can update the delegate at
runtime. There's an "add desktop" button which then might give us 3
virtual desktops. As a general rule any setter exposed via a declarative
API should always perform the setting.

Reloading has to be delayed because otherwise we unload the caller.

BUG: 486839
2024-05-23 12:00:56 +03:00
Vlad Zahorodnii
29122f1df6 Improve integration of preferred buffer scale with xdg shell configure events
With this change the preferred buffer scale, transform and color
description properties will be latched to xdg shell configure events.

This should ensure that the clients are told the preferred buffer
scale before the first configure events.
2024-05-23 08:15:29 +00:00
l10n daemon script
0e934273bb GIT_SILENT Sync po/docbooks with svn 2024-05-23 01:28:27 +00:00
Xaver Hugl
b232e80319 backends/drm: don't update outputs from within DrmGpu
DrmBackend::updateOutputs may delete DrmGpu objects, so calling it from within
a DrmGpu method can cause problems

BUG: 483008
FIXED-IN: 6.1.0
2024-05-22 20:33:51 +00:00
Xaver Hugl
1866e70fe3 core/renderjournal: tweak render time prediction to reduce latency slower
This makes it a bit more conservative for reducing latency, which decreases the
amount of dropped frames in desktop usage a lot (by 13x on my desktop, 2x on my laptop)
2024-05-22 17:18:11 +02:00
David Edmundson
c65f01e5dc xwayland: Avoid forwarding spurious mouse events
pointerEvents contain all motion events, the xwayland filter is only
concerned with forwarding clicks. Right now we would update an invalid
button state constantly. It did nothing harmful but was still a bit
silly.
2024-05-22 07:32:36 +00:00
l10n daemon script
7ba6c08fa7 GIT_SILENT Sync po/docbooks with svn 2024-05-22 01:30:43 +00:00
Xaver Hugl
2e9e6893bb wayland: port linux drm syncobj from RenderBackend to DrmDevice 2024-05-22 00:26:14 +02:00
Xaver Hugl
0f41239515 waylandserver: set render backend for linuxdrmsyncobj directly
The code would previously never set the render backend, causing the use of explicit sync
to fail

BUG: 486391
2024-05-22 00:26:14 +02:00
Xaver Hugl
3465ecac16 wayland: implement plasma window management v17
This fixes plasmashell crashing because of the stacking order string exceeding
the size of a Wayland message

CCBUG: 479492
2024-05-21 17:48:55 +02:00
Jakub Piecuch
7bf40c3501 utils/edid: use detailed timings to compute physical screen size
An EDID can contain zero or more detailed timing definitions, which can contain
more precise physical dimensions of the screen (in millimeters, as opposed to
centimeters).

The Xorg server has similar logic for determining the physical screen size from
the EDID: pick the first sane size from the detailed timing definitions, and
fall back to the screen size given in the "Basic Display Parameters & Features"
section.

BUG: 486585
2024-05-21 11:22:51 +00:00
l10n daemon script
79357db409 GIT_SILENT Sync po/docbooks with svn 2024-05-21 01:33:01 +00:00
Nate Graham
dcd2f7b15a plugins/tileseditor: clarify wording in "split the view" buttons
Apparently people have differing ideas of what "vertically" and
"horizontally" mean, and some feel that this wording contradicts the
icon.

That's not accurate, but the wording is admittedly a little a bit
ambiguous. We can clarify this by using super duper explicit
terminology that always matches the icon.

BUG: 475103
FIXED-IN: 6.1
2024-05-20 15:58:01 +00:00
Volodymyr Zolotopupov
202356ba89 plugins/screenshot: Snap pixel grid for rectangular screenshots
To prevent blurring with fractional scaling
2024-05-20 14:23:38 +00:00
Volodymyr Zolotopupov
f4232bc391 plugins/screenshot: Round texture size
To prevent window screenshot blurring with fractional scaling
2024-05-20 14:23:38 +00:00
Vlad Zahorodnii
1ca7524853 plugins/nightlight: Correct time check in currentTargetTemp() 2024-05-20 14:09:15 +00:00
Vlad Zahorodnii
bc52189e20 plugins/nightlight: Remove unused typedef 2024-05-20 14:09:15 +00:00
Vlad Zahorodnii
1d9824d0a2 plugins/nightlight: Clean up the slow update code path 2024-05-20 14:09:15 +00:00
Vlad Zahorodnii
7880f879a3 plugins/nightlight: Make the slow transition more robust to fuzzy time values
If the slow transition is scheduled slightly earlier before m_next.first,
don't skip the "m_prev.first <= todayNow && todayNow <= m_prev.second" branch.

Also explicitly handle the case when resetSlowUpdateTimers() gets called
after m_prev.second, i.e. the previous transition has finished running.
2024-05-20 14:09:15 +00:00
Xaver Hugl
bbf4f46b28 compositor_wayland: properly handle moving the cursor plane failing
On test failure, the plane has to be disabled or future atomic tests fail

BUG: 487037
2024-05-20 11:14:01 +00:00
l10n daemon script
f5ac8968d8 GIT_SILENT Sync po/docbooks with svn 2024-05-20 01:28:06 +00:00
l10n daemon script
aae9eb9c65 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-20 01:18:51 +00:00
l10n daemon script
c919c91063 GIT_SILENT Sync po/docbooks with svn 2024-05-19 01:29:43 +00:00
Xaver Hugl
35ce8a6208 outputconfigurationstore: increase the default SDR brightness
200 nits is a bit dark in most situations, so this switches the default SDR
brightness to up to 500 nits (depending on what the screen supports)
2024-05-18 20:37:07 +00:00
l10n daemon script
22dffa4714 GIT_SILENT Sync po/docbooks with svn 2024-05-18 01:28:37 +00:00
Vlad Zahorodnii
ebe6f58d9a backends/wayland: Avoid attaching null buffer
Otherwise the window will be unmapped.
2024-05-17 11:20:35 +00:00
Ambareesh Balaji
0b2596b604 plugins/nightlight: handle imprecise timers
Due to QTimer sometimes firing a tad bit early, transitions get skipped, or we
end up in the "Error in time calculation" branch. This commit improves timer
handling to avoid this.
2024-05-17 09:46:34 +00:00
Niccolò Venerandi
b59ba5b9b7 Do not snap to windows of the Dock type
We do not snap to docks (i.e. panels) since the ones we
actually want to snap to (i.e. always visible ones) will
restrict the workspace area, and the window will snap to
that, effectively snapping to the panel too. Explicitedly
avoiding panel snapping solves any possible issue of
floating panels, since they change their size when a window
gets near them.
2024-05-17 09:17:24 +00:00
l10n daemon script
de88370577 GIT_SILENT Sync po/docbooks with svn 2024-05-17 01:28:13 +00:00
Vlad Zahorodnii
fa895828de plugins/screencast: Cleanup buildFormats()
The fixate branch makes sense only in case dmabuf is available.
2024-05-16 13:01:14 +00:00
Vlad Zahorodnii
9af15a979d backends/wayland: Check whether it's possible to create a swapchain with the given format+modifier
BUG: 485496
2024-05-16 12:44:21 +00:00
David Edmundson
df60eef0db wayland: Send dnd_cancelled to source before data_device.leave to target
Otherwise it is harder for clients to detect an actual cancellation when
dragging to itself.
2024-05-16 10:55:43 +00:00
Vlad Zahorodnii
856925bcc3 wayland: Print error code if accept fails for security context's listen fd 2024-05-16 10:32:38 +00:00
Vlad Zahorodnii
de15b87ea7 wayland: Fix security context failing to create a client
wl_client_create() can fail.
2024-05-16 09:44:56 +00:00
Vlad Zahorodnii
982a2e3a37 wayland: Lower severity of a log message about unknown uuid
The communication between the compositor and plasmashell is asynchronous.
It's possible that plasma can call get_window_by_uuid before it is notified
that the window has been closed. There's no any way around with the
current design of the protocol. So printing a warning message is
unjustified. This fixes kwin's logs being full of "could not find window"
warning messages.
2024-05-16 08:54:01 +00:00
David Edmundson
711c5bb43f wayland: send dndFinished to source if target fails to do so
After receiving a drop a client should call data_offer.finish
to tell the source it's done using the drop.

A client could delete an offer after drop before calling finish.

This can happen with misbehaving/buggy or malicious Wayland clients.
A real case was found in the wild with Chromium, as described in the
linked bug.

In this situation we should let the source know the dnd is finished
as there are no other transfers than can take place.

We don't want to universally send this in all data offer destructors
only, offers that are deleted post drop so the flag on the source is
exposed.

BUG: 482142
2024-05-16 08:23:00 +00:00