Commit graph

25902 commits

Author SHA1 Message Date
Vlad Zahorodnii
0a2ed7d1c8 Move scaledRect,roundVector,flooredPoint to globals.h 2023-11-20 11:32:43 +00:00
Xaver Hugl
bec9ffeacd outputconfigurationstore: match KScreen's max scale of 300% 2023-11-20 09:11:09 +00:00
Nicolas Fella
6a1b1d01b8 Fix and simplify UI creation in various effect KCMs
We don't need an intermediate widget class here, we can set up the UI directly, like it's done in several effect KCMs already

Not only does this simplify the code, it also fixes crashes due to broken ownership

BUG: 477020
2023-11-20 07:41:49 +00:00
Vlad Zahorodnii
51bcf3440f Port to the new .gitlab-ci.yml include project syntax
As Ben said on the mailing list.
2023-11-20 09:25:55 +02:00
l10n daemon script
a1857132c9 GIT_SILENT Sync po/docbooks with svn 2023-11-20 02:50:54 +00:00
Huang-Huang Bao
3d4036210d
scene: use fractionalGeometry() as input of RenderViewport renderRect
Fixes mismatches between renderTarget.size() and deivce geometry calculated using viewport.renderRect() * viewport.scale() .

BUG: 475325
2023-11-20 06:14:55 +08:00
l10n daemon script
357fba6a08 GIT_SILENT Sync po/docbooks with svn 2023-11-19 02:28:28 +00:00
Jonathan Esk-Riddell
2302d81d5a Update version number for 5.81.80
GIT_SILENT
2023-11-17 12:28:13 +00:00
l10n daemon script
7471d93a33 GIT_SILENT Sync po/docbooks with svn 2023-11-17 02:13:58 +00:00
Natalie Clarius
8e6b1a363f plugins/nightcolor: osd: show day icon if appropriate 2023-11-16 19:48:06 +00:00
Vlad Zahorodnii
96e979c736 Move window motion manager to the slideback effect
Slide back is the only remaining its user.
2023-11-16 17:06:38 +02:00
Vlad Zahorodnii
b0292fc0de Move Effect::animationTime() implementation to effect.h
Amends d13b53c366.

It was overlooked.
2023-11-16 16:15:32 +02:00
Vlad Zahorodnii
fe9821722e Drop Effect::initConfig()
Effect::initConfig() definition can't be moved to effect.h because
it's going to create a cyclic dependency. On the other hand, the real
benefit of initConfig() is doubtful. It's a shortcut for calling
Config::instance(effects->config()), which is small amount of code.
2023-11-16 16:14:09 +02:00
Vlad Zahorodnii
8566cb3735 Move effectloader.h to libkwineffects/ 2023-11-16 15:51:39 +02:00
Vlad Zahorodnii
36021b12a7 Drop redundant "kwin" prefix in some filenames 2023-11-16 13:37:50 +00:00
Xaver Hugl
e17af124d4 backends/drm: correct color management check for the CTM 2023-11-16 13:15:36 +00:00
Devin Lin
12d04f9d86 libkwineffects: Export EffectTogglableState 2023-11-15 21:41:40 -08:00
l10n daemon script
5715f7448b GIT_SILENT Sync po/docbooks with svn 2023-11-16 02:24:48 +00:00
l10n daemon script
56c732829f 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"
2023-11-16 02:15:19 +00:00
Aleix Pol Gonzalez
b860439be5 Allow support dmabuf formats that we have conversions for.
If there's a supported mechanism to handle the format, announce them as
supported.
If there are modifiers supported by the graphics card (even though as
external only), offer them as well.
2023-11-15 21:42:05 +01:00
Aleix Pol Gonzalez
3568829216 opengl: Add support for NV12 on Wayland dmabufs
Offers wayland clients the possibility to send us their contents using
an NV12 texture.
It implements it by rendering into scene using a shader.
2023-11-15 21:32:25 +01:00
Niccolò Venerandi
9e81d2f65c plugins/overview: Bind values to 1:1 animation while gesture is ongoing
Otherwise the animation feels wrong while activating with a gesture.
Now when a 1:1 gesture is ongoing, then the Overview effect will stop
animating the overviewVal/gridVal values. I implemented this by porting
to states, giving 1:1 gestures their own states, and only animating the
change between states.

BUG: 476536
2023-11-15 17:41:02 +00:00
Vlad Zahorodnii
15b47ce7fc Merge EffectsHandlerImpl and EffectsHandler 2023-11-15 15:21:50 +02:00
Vlad Zahorodnii
d0158ec588 Drop X11 connection getters in Effect
They are redundant, EffectsHandler already provides same things.
2023-11-15 14:41:43 +02:00
Vlad Zahorodnii
a5546f1450 Drop some unused kwineffects.h includes 2023-11-15 14:41:42 +02:00
Vlad Zahorodnii
d13b53c366 Extract Effect into its own header
After merging libkwineffects and libkwin, EffectsHandler and EffectWindow
have effectively become redundant. On the other hand, Effect and the
associated factory code is still relevant. In order to split relevant and
"legacy" code, this change extracts the Effect class in its own header.
It's also a good idea to split kwineffects.h header because it's quite
huge...
2023-11-15 14:41:42 +02:00
Vlad Zahorodnii
56e384e527 Extract TimeLine into its own header 2023-11-15 12:02:50 +00:00
Vlad Zahorodnii
889180b685 Remove code to unset QT_DEVICE_PIXEL_RATIO envvar
QT_DEVICE_PIXEL_RATIO has been dropped in Qt 6.
2023-11-15 12:27:32 +02:00
David Redondo
6befc5d11b Do not set QSG_RENDER_LOOP Variable
This leaks to other processes that are started by KWin.
The QPA sets ThreadedOpenGL capability to false which suffices
to use the basic render loop with OpenGL.
2023-11-15 09:58:54 +00:00
l10n daemon script
36edf7cb4f GIT_SILENT Sync po/docbooks with svn 2023-11-15 02:16:04 +00:00
Xaver Hugl
ee146d33b9 libkwineffects: move files out to more fitting places 2023-11-14 17:03:40 +01:00
Vlad Zahorodnii
51cb2b00b3 Extract EffectFrame helper in its own header 2023-11-14 15:11:29 +00:00
Vlad Zahorodnii
9692c65390 Drop "sub-feedback" concept in PresentationFeedback
This gets rid of the container feedback to simplify presentation
feedback organization.
2023-11-14 14:58:40 +00:00
Vlad Zahorodnii
79d5a70c01 wayland: Make SurfaceInterface::{frameRendered,takePresentationFeedback} not touch subsurface tree
This gives us greater flexibility and in general more cleaner code.
2023-11-14 14:58:40 +00:00
Weng Xuetian
9e047059c1
Add isInputMethod in EffectWindow and do not dim input method window 2023-11-14 06:29:51 -08:00
Vlad Zahorodnii
aabc162632 x11: Unload effects before destroying Workspace and Compositor
Effects can hold references to closed windows, which can cause problems
after the workspace is destroyed.

This change makes ApplicationX11 unload effects before destroying the
Workspace and the Compositor similar to how it's done in main_wayland.

BUG: 475511
2023-11-14 15:51:03 +02:00
Xaver Hugl
75304afe0f backends/drm: only disallow direct scanout with mismatching color descriptions
Generically disabling it with color management is a bit overkill
2023-11-14 14:17:37 +01:00
l10n daemon script
b441e1afe9 GIT_SILENT Sync po/docbooks with svn 2023-11-14 02:14:47 +00:00
Xaver Hugl
38575ac33d backends/drm: re-allow the hardware cursor with color management
It doesn't look wrong anymore, presumably what caused it to look wrong before
was just a bug. Blending in sRGB or PQ is still technically wrong, but it
looks okay, and that's an acceptable tradeoff to make in order to get the
responsiveness and power usage improvements the hardware cursor offers
2023-11-13 20:49:22 +01:00
Natalie Clarius
5ee2d53561 rename user facing name 'Night Color' -> 'Night Light'
This 1. is more familiar terminology as on other platforms (Gnome, Android); 2. avoids confusion with a planned future day/night light/dark color scheme switcher.
2023-11-13 15:53:29 +00:00
Xaver Hugl
869e86ff00 backends/drm: disable buffer readability checks on Intel
They cause stutters and reduced frame rates on some Intel laptops because the
buffers don't become readable in time, so disable the checks until that's fixed
on the driver side. For debugging purposes, the environment variable
KWIN_DRM_DISABLE_BUFFER_READABILITY_CHECKS can be used to override the default
behavior.

BUG: 476860
2023-11-13 14:33:44 +00:00
Xaver Hugl
93443a8228 backends/drm: set the correct content transform for shadow buffer
BUG: 476931
2023-11-13 13:44:54 +00:00
Xaver Hugl
7bf38e54bf wayland: implement presentation time 2023-11-13 14:25:26 +01:00
Xaver Hugl
46f8bfcf7b dpmsinputeventfilter: don't filter out key release events
If the release event is filtered out, the rest of the system thinks the
button is still pressed, even though it isn't
2023-11-13 13:05:12 +00:00
Xaver Hugl
2a3068b14e workspace: ignore placeholder output for dpms
This doesn't fix any issues, but it's not necessary to destroy and then
re-create the dpms filter just because of the placeholder output
2023-11-13 13:05:12 +00:00
Nathan Garside
3662c75a53 tiling: update ui on shift press/release 2023-11-13 12:31:17 +00:00
Harald Sitter
b8fb43db95 pointer_input: position cursor on the primary output after a placeholder
this improves the out of the box behavior which has regressed a bit over
time. since we default to kcfg_ActiveMouseScreen=true the active screen
by default follows the pointer. during early startup we position the
pointer on a Placeholder output, this output does eventually get
replaced by the real output(s). because of the update logic we'd
re-position the pointer on the closest real output, but that isn't
necessarily the intended primary output.

e.g. consider an eDP + HDMI setup depending on the geometries involved
the cursor may end up on the HDMI screen by default rather than the eDP
resulting in plasma-welcome opening on the HDMI output.

to mitigate this problem we now track whether the last output was a
placeholder and if so we instead try to position the pointer on the
current primary output
2023-11-13 11:34:09 +00:00
Vlad Zahorodnii
0b8b9b70bb Merge EffectWindowImpl with EffectWindow
The indirection no longer required because libkwineffects has been
merged with libkwin. EffectWindow will be eventually dropped in favor
of apis provided by Window and WindowItem.
2023-11-13 11:24:04 +00:00
David Edmundson
4016406e1e wayland: Drop isTrustedOrigin check
The rationale behind the check was sandboxed apps could have a different
mount namespace to kwin, therefore lying about the executable path was
doable.

Moving forward anything sandboxed will have a security context app Id.
Anything not sandboxed can circumvent these checks anyway.

This significantly improves application launch time.
2023-11-13 10:41:35 +00:00
David Edmundson
aec896acc0 wayland: Prefer security context appId for permission lookup where available
The security context appId is set by the launching container (i.e
flatpak) and is therefore more trustworthy than any other source of
application ID.

Use this when looking up allowed wayland extensions.
2023-11-13 10:41:35 +00:00