Commit graph

24495 commits

Author SHA1 Message Date
Vlad Zahorodnii
e0062f675d Port away from QRectF::contains()
QRectF::contains() considers right and bottom edges inside the
rectangle, but the relevant code has the opposite expectations.
2023-02-21 19:45:51 +00:00
Nicolas Fella
bae75abf6d Remove unneeded X-KDE-ParentApp from KCM metadata 2023-02-21 17:36:54 +00:00
Aleix Pol
8c86648172 inputmethod: Give text input managers a parent
Otherwise they linger forever
2023-02-21 15:26:48 +00:00
Nicolas Fella
a1639da6e5 [kcm/common] Port EffectsModel away from KPluginMetaData::metaDataFileName
It's gone in KF6

It's only used to obtain the install location of the package and resolve files relative to that

Use QStandardPaths to locate those files directly
2023-02-21 14:55:28 +00:00
Vlad Zahorodnii
2de5236e3f scene: Ensure there's current opengl context when DecorationItem is repainted for last time
BUG: 466186
2023-02-21 13:22:15 +00:00
Aleix Pol
93815aede4 screencasting: only invert the texture manually when it's not marked as inverted
In the cases where isYInverted(), the texture will be properly placed.
It's only when not that we need to mirror it vertically.
2023-02-21 12:22:20 +00:00
Aleix Pol
1be2b8868c wayland_egl: Reuse the texture we already have for textureForOutput 2023-02-21 12:22:20 +00:00
Vlad Zahorodnii
c24a5f0395 effects/glide: Fix transform
Translation should be in logical pixels.

BUG: 465849
2023-02-21 11:54:34 +00:00
David Edmundson
01fd54d753 Aurorae: Add dummy window for working device pixel ratio
Aurorae uses a QQuickWindow that receives an implicit scale through the
QPA. Unfortunately there's a known quirk with device pixel ratio not
being followed when offscreen surfaces are never shown and an
independent render control is used.

Without this QQuickRenderControl::grab ends up using a buffer the size
of the window * dpr, but with the contents rendered at 1x in the corner
along with incorrect device pixel ratio information.

This patch copies a used solution from EffectQuickView. This can be
resolved more neatly with newer Qt.

BUG: 452730
BUG: 465790
2023-02-21 11:07:33 +00:00
David Redondo
38cd1fc491 scripting: Mark QObjects returned from invokables as having C++ ownership
Otherwise the script engine may delete them if they have no parent and
there are no more references to them.
2023-02-21 11:12:08 +01:00
Vlad Zahorodnii
18d6159be1 tiling: Make child tiles inherit padding from parent tile
If a new tile is added, make it inherit parent tile's padding to ensure
consistent padding.

BUG: 465842
2023-02-21 09:22:19 +00:00
Arjen Hiemstra
edbbe996d3 effects/contrast: Round device coordinates when creating geometry
Since normal geometry is now rounded, we need to make sure to round
anything that should match that geometry, otherwise we risk things
peeking out of the normal geometry.

BUG: 464526
2023-02-21 07:50:53 +00:00
l10n daemon script
996a0c05fa GIT_SILENT Sync po/docbooks with svn 2023-02-21 02:28:10 +00:00
l10n daemon script
6a5d809f81 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-02-21 02:04:35 +00:00
Xaver Hugl
4cd25cf571 cursor: make position, hotspot and size floating point
This allows all pixel positions to be used on high dpi screens,
and corrects damage tracking with Xwayland cursors

CCBUG: 466094
2023-02-20 21:01:39 +00:00
David Redondo
7366545d0f Move Layer and QuickTile enum to kwinglobals.h
Q_NAMESPACE can ever only be used once for a namespace otherwise
there will be multiple defintions of the staticMetaObject.
2023-02-20 20:22:26 +00:00
Xaver Hugl
81571203f1 cursorsource: fix scaling with Xwayland
Before this commit, the device pixel ratio of the cursor was set to ignore
the Xwayland scale override, while the size of the cursor surface was scaled.
This change removes the scaling of the cursor surface size, to make the cursor
be no longer cut off in rendering.

BUG: 466094
2023-02-20 19:50:30 +01:00
Xaver Hugl
3334fb8752 cursordelgate: round cursor position when rendering
Otherwise there can be weird artifacts when screen scaling is involved
2023-02-20 16:22:24 +01:00
David Redondo
264a19247b Mark Window as damaged when decoration or shadow changes
Enforms thumbnails, screencasts and effects of these changes and
that the window needs repainting.
BUG:464417
FIXED-IN:5.27.1
2023-02-20 11:55:22 +01:00
David Edmundson
ada8e40792 outputchangeset: Round passed scale
Converting to wl_fixed is lossy. Especially for non-round values like 1.15.

This causes various visual glitches and off sizes.

Given we're using units of 120ths for the fractional scale protocol it makes sense
to fix the passed values for anything else over the wayland protocol.

BUG: 465850

Testing done:
ran a 1920 screen at 1.15 scale, got a logical size of 1670 which matches what it should be
2023-02-20 10:02:06 +00:00
l10n daemon script
6d25104849 GIT_SILENT Sync po/docbooks with svn 2023-02-20 02:29:21 +00:00
l10n daemon script
d5207b95c8 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-02-20 02:04:26 +00:00
Xaver Hugl
9d353864a4 kwinglutils: use QSizeF instead of QRect
The method is ignoring the position of the rectangle, which is very unintuitive
when using it
2023-02-19 10:39:34 +00:00
l10n daemon script
a7ffdef186 GIT_SILENT Sync po/docbooks with svn 2023-02-19 02:33:49 +00:00
Vlad Zahorodnii
96fdc9d55a scripting: Make KWin.registerWindow() noop on wayland
On Wayland, windows properly update if they are remapped.
2023-02-18 10:17:28 +00:00
l10n daemon script
9b14930216 GIT_SILENT Sync po/docbooks with svn 2023-02-18 02:28:50 +00:00
Nicolas Fella
27b90db641 Remove unneeded KAboutData includes 2023-02-17 16:16:26 +00:00
Nicolas Fella
61718d9017 Port QML KCMs away from setAboutData
Let them use the JSON metadata instead
2023-02-17 16:16:26 +00:00
Aleix Pol
d203d3b370 AbstractEglBackend: Share initBufferConfigs among its children
The only one that does it differently is the DRM backend and it's just
an extension that takes GBM into account, otherwise it's effectively
copy-pasted code.
2023-02-17 13:39:27 +00:00
Aleix Pol
c0d87e0139 backends/wayland: Remove unused attribute
Makes clang complain
2023-02-17 13:39:27 +00:00
Vlad Zahorodnii
70a063a34c scripting: Rename ScreenEdgeItem to ScreenEdgeHandler
ScreenEdgeItem is not an item, so rename it to something else. "Handler"
is inspired by QtQuick, e.g. TapHandler.
2023-02-17 13:19:29 +02:00
Vlad Zahorodnii
5942c13eba scripting: Fix registration of some types
We need to register data types such as QVector<KWin::VirtualDesktop *>
both for QML and JavaScript scripts.

If you have no JavaScript scripts enabled, those container types won't
be registered and QML will fail to read properties such as
Window.desktops, which can result in already visible windows animating
opacity from 0 to 1 when opening overview effect.

To fix that, register all accessible data types in scripting apis in
Scripting::init().
2023-02-17 10:14:43 +00:00
Tobias Berner
99b2e6072c Add missing cerrno include. 2023-02-17 09:36:26 +00:00
Vlad Zahorodnii
4bf06466f1 effects/{desktopgrid,overview,windowview}: Port to SceneView 2023-02-17 11:01:23 +02:00
Vlad Zahorodnii
0c0fb99919 kwineffects: Add SceneView attached property
SceneView attached property is a more script friendly way to pass the
information about a screen view from C++ to QML code.
2023-02-17 11:01:23 +02:00
l10n daemon script
a17d99ee02 GIT_SILENT Sync po/docbooks with svn 2023-02-17 02:21:02 +00:00
Vlad Zahorodnii
72b7bda18e scripting: Drop Window.geometry property 2023-02-16 07:42:54 +00:00
l10n daemon script
e75496d97f GIT_SILENT Sync po/docbooks with svn 2023-02-16 03:31:57 +00:00
David Edmundson
7b46f101e3 Simplify tile dismissal
We want floating tiles to be activatable, but also dismiss the effect by
clicking on the whitespace.

The current solution doesn't work as a floating tile that is in turn
split will pull focus from the children meaning those tiles can't be deleted.

Rather than special casing and z-manipulation we can simplify everything
by moving tile dismissal to the root of the effect and appropariately
propagating the event.

BUG: 465740
2023-02-15 23:05:13 +00:00
Vlad Zahorodnii
9b6c9242f6 scripting: Drop "Item" word in WindowThumbnailItem and DesktopBackgroundItem
Drop the "Item" word to be more consistent with QtQuick coding
conventions, where C++ usually include the Item word, but QML types
don't.
2023-02-15 21:06:44 +02:00
Vlad Zahorodnii
37bcdbc03e scripting: ClientModel -> WindowModel 2023-02-15 16:54:42 +00:00
Tomasz Paweł Gajc
88cf83554f add support for Lima, V3D, VC4 (based on https://github.com/OpenMandrivaAssociation/kwin/blob/master/kwin-5.21.4-add-support-for-panfrost-driver.patch made by Bernhard Rosenkraenzer) and update list of supported devices for Panfrost 2023-02-15 11:23:02 +00:00
Vlad Zahorodnii
c2fb99d126 x11: Drop xv-related workaround
It creates bouncing glitches in client side decorated windows. Besides
that, it's preferred to avoid adding client workarounds in the wm.
2023-02-15 09:39:12 +00:00
Vlad Zahorodnii
683761ea2d scripts/desktopchangedosd: Port to VirtualDesktop objects 2023-02-15 08:32:07 +00:00
Nicolas Fella
659f4eb555 Remove unneeded KService usages 2023-02-15 07:27:55 +00:00
l10n daemon script
8ced766a58 GIT_SILENT Sync po/docbooks with svn 2023-02-15 02:25:44 +00:00
Aleix Pol
577c031599 screencast: Simplify the region path
No need to render the intermediate texture into a second intermediate
texture.
2023-02-14 14:41:42 +00:00
Aleix Pol
6394bccdcb x11/windowed: Fix screencasting
Properly notify when the output changes.
Make sure we are reading from the correct framebuffer when forwarding
the texture.
2023-02-14 14:41:42 +00:00
Aleix Pol
309c9100fa virtual: fix screencasting by output
Properly notify when the output changes.
Forward the texture that holds the output when requested.
2023-02-14 14:41:42 +00:00
Harald Sitter
1ede84f4fe forward all channels of started subprocesses
there is no practical reason I can see for why this should be limited to
stderr only. we are not reading or otherwise consuming stdout, we should
just pass it on.
2023-02-14 13:11:32 +01:00