Commit graph

26956 commits

Author SHA1 Message Date
David Edmundson
5d90f232bd effects: Disable showing desktop when starting any fullscreen effect
Fullscreen effects typically will show all the windows, when the effect
ends having the windows disappear doesn't really work.
From a user point of view any full screen effect is a new task, we want
to cancel any preivous task.

BUG: 487299
2024-05-30 08:06:56 +00:00
l10n daemon script
0ce7a40850 GIT_SILENT Sync po/docbooks with svn 2024-05-30 01:30:05 +00:00
Xaver Hugl
2cf36e640f core/renderloop: honor repaint scheduling requests from effects with vrr
Until effects are converted to schedule repaints on the item they're modifying,
we need to allow repaint scheduling from nullptr items, and handle repaints on
the (cursor) render layers to still be filtered out

BUG: 487480
2024-05-29 12:46:26 +00:00
David Redondo
cefcdf7db5 Unset suspended state of windows that are marked for offscreen rendering
Otherwise some clients will not render anything even though we are
sending frame callbacks.
BUG:487702
FIXED-IN:6.1
2024-05-29 12:02:01 +00:00
Vlad Zahorodnii
64ddeff3bd Forbid activating override redirect windows
BUG: 486026
2024-05-29 10:51:23 +00:00
Łukasz Patron
ce57af62ec scripting: Filter out windows with isClient=false in WindowModel
These windows render as empty boxes and opening them crashes the KWin.
Also, the same check is present in TabBox.

BUG: 486182
2024-05-29 10:45:14 +00:00
David Redondo
ba7b23c41d autotests/test_xkb: Do not expect fail in fixed Qt versions 2024-05-29 12:12:42 +02:00
l10n daemon script
59f1f7ee9f GIT_SILENT Sync po/docbooks with svn 2024-05-29 01:44:10 +00:00
l10n daemon script
c164ff467c 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-29 01:17:54 +00:00
David Redondo
ec1ebb6fb8 Use di_info_get_serial to fetch the serial number from EDID
This will also look at the "product serial string" in addition
to the actual serial number. The former is what we use elsewhere
in Plasma like the kscreen kcm.
BUG:485015
FIXED-IN:6.1
2024-05-28 13:19:59 +00:00
Vlad Zahorodnii
1d05f98e4b qpa: Guard against failing to get a swapchain in platform opengl context
QOpenGLContextPrivate::setCurrentContext() was dropped because the
platform opengl context no longer uses QOpenGLFramebufferObject, which
needed QOpenGLContext::currentContext().
2024-05-28 12:51:10 +00:00
l10n daemon script
6a59c4defc GIT_SILENT Sync po/docbooks with svn 2024-05-28 01:26:54 +00:00
Xaver Hugl
804ecb0e22 core/renderloop: make repaint scheduling more robust against wrong render time estimations
When the render time estimation is much higher than the real render time, and triple buffering is
enabled, the previous logic would schedule frames multiple vblanks in advance, which could drop the
effective refresh rate by more than is necessary. This commit limits it to the second vblank after
the current time, which ensures that we hit the full refresh rate even when render time prediction
is wrong
2024-05-28 01:23:11 +02:00
Xaver Hugl
97c1d335e5 backends/drm: delay atomic commits until the time they're meant for
Otherwise, if render time prediction and actual render time are very different,
a lot of frames get dropped and in some cases more frames than is useful are
rendered, creating stutter instead of only unnecessary latency

BUG: 487605
2024-05-28 01:23:11 +02:00
Yifan Zhu
09d4f3fda3 xkb: support converting Qt keys to keysyms
QXkbCommon::toKeysym doesn't correctly handle the case where a single Qt
key map to multiple keysyms.

BUG: 482847
2024-05-27 18:27:33 +00:00
Vlad Zahorodnii
b0ccacc983 Avoid using QMouseEvent in processDecorationButtonPress()
BUG: 480864
2024-05-27 17:32:14 +00:00
Vlad Zahorodnii
fa351403ef Ignore button release events when double clicking
One could check that the double click timer is still active.
2024-05-27 17:32:14 +00:00
Vlad Zahorodnii
a76ae07ee1 Revert "effects: Use unique device for replaying events to QQuickView"
It broke overview.

This reverts commit 862dae455a.
2024-05-27 17:32:14 +00:00
Vlad Zahorodnii
447994581b xwayland: Fix dnd position with hidpi 2024-05-27 16:21:01 +00:00
Xaver Hugl
5e122cb6c0 wayland/linuxdrmsyncobjv1: don't emit a protocol error for unmapping a surface 2024-05-27 15:14:27 +02:00
Alois Wohlschlager
ae376766ef window: consistently use normal keyboard modifiers for tiling
A bad rebase in commit 43e5f17547 inadvertedly
reverted half of the fix from 1f1c54ca6c. As a
result, custom tiling would appear broken again for keyboard layouts where caps
lock is achieved by pressing both shift keys at the same time. Reapply the half
of the fix that went missing.
2024-05-27 09:56:31 +00:00
David Edmundson
862dae455a effects: Use unique device for replaying events to QQuickView
When a new mouse event is made it updates the global position of that
device. This causes issues if a mouse event is forwarded with an
adjusted position then used afterwards.

`QPointingDevice::primaryPointingDevice` creates a new pointer device
internally if the seat name does not exist. It is then shared between
future usages.

BUG: 480864
2024-05-27 08:55:27 +00:00
l10n daemon script
d0e07ba3e8 GIT_SILENT Sync po/docbooks with svn 2024-05-27 01:29:46 +00:00
l10n daemon script
669e90325c GIT_SILENT Sync po/docbooks with svn 2024-05-26 01:26:01 +00:00
l10n daemon script
9e3db94718 GIT_SILENT Sync po/docbooks with svn 2024-05-25 01:29:28 +00:00
l10n daemon script
2099409189 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-25 01:18:37 +00:00
Xaver Hugl
3f0627172d cmake: bump required plasma-wayland-protocols version 2024-05-24 20:53:02 +00:00
David Edmundson
73425b13a4 autotests: Improve autotests for window scaling 2024-05-24 18:23:05 +00:00
Vlad Zahorodnii
cc031839db Properly update move resize output when the move resize geometry changes
setMoveResizeGeometry() should be used so the preferred buffer scale and
transform are updated.
2024-05-24 21:10:21 +03:00
Vlad Zahorodnii
e678ebef29 3rdparty: Reformat xcursor.{h,c} 2024-05-24 16:21:36 +00:00
Vlad Zahorodnii
586a775d5b utils: Load Xcursor themes using QFile
This improves the integration of the XcursorTheme class with the rest of
the Qt ecosystem, for example it should be possible to load cursor themes
from Qt resources.
2024-05-24 16:21:36 +00:00
Vlad Zahorodnii
d655b5a994 3rdparty: Drop xcursor write hook
It's unused.
2024-05-24 16:21:36 +00:00
Xaver Hugl
40a9f08dd3 backends/drm: allow up to two composited frames to be pending at the same time
This should improve responsiveness on setups where rendering each frame takes longer
than the refresh cycle of the display.

BUG: 452119
CCBUG: 454098
2024-05-24 17:32:20 +02:00
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