Commit graph

23379 commits

Author SHA1 Message Date
Arjen Hiemstra
b8b9236ec4 Add "roundVector" function as convenience for rounding a QVector2D
Otherwise we constantly need to construct and deconstruct vectors.
2022-10-21 14:49:22 +00:00
Vlad Zahorodnii
ae01354638 autotests: Remove invalid cases in testScreens
The Workspace requires at least one output and no output has 0x0 size.

This fixes a crash in confineToBoundingBox() where qBound() asserts that
the min value is less than the max value, in our case the x coordinate
of the left edge of the workspace is less than the x coordinate of the
right edge of the workspace.
2022-10-21 17:03:59 +03:00
Xaver Hugl
49ad013295 backends/drm: remove Wayland bits for drm leasing 2022-10-21 13:33:42 +02:00
Mouse Zhang
fcaf0cad9e effects/backgroundcontrast: Fix backgroundcontrast stripes when rounded window scaling 2022-10-21 10:01:17 +00:00
Mouse Zhang
8468eeafdd effects/blur: Fix blur stripes when rounded window scaling
BUG: 460412
2022-10-21 10:01:17 +00:00
l10n daemon script
f6d1daf972 GIT_SILENT Sync po/docbooks with svn 2022-10-21 02:17:11 +00:00
l10n daemon script
c57b3750e7 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"
2022-10-21 01:56:05 +00:00
Volker Krause
3a4b8f65ce Don't rely on implicit 2D to 3D vector conversion
That is explicit with Qt 6.
2022-10-20 20:00:52 +00:00
Xaver Hugl
ed8d696698 backends/drm: use #pragma 2022-10-20 21:10:46 +02:00
Xaver Hugl
629a32a802 backends/drm: rename drm object files 2022-10-20 21:08:51 +02:00
ivan tkachenko
e489ad9a16
UserActionsMenu: Add "Move &To Current Desktop" action from task manager for X11
Task Manager has this option, so let's keep them consistent.
Surprisingly, when a window is set to "All Desktops", choosing "All
Desktops" again clears that flag, i.e. sets the window back to only
single desktop. But it is not intuitive at all. So let's have this
separate action to pin a window to current desktop.

Note: Wayland allows for multiple but not all desktops to be assigned to
a window, so it works differently there. Should we have a similar
option there too?

BUG: 458415
2022-10-20 17:08:09 +03:00
ivan tkachenko
d477b31842
UserActionsMenu: Remove duplicated code block 2022-10-20 17:08:07 +03:00
Vlad Zahorodnii
624886f0de wayland: Drop ScopedGlobalPointer 2022-10-20 12:27:51 +00:00
Vlad Zahorodnii
7115ea75a4 Drop WaylandOutput 2022-10-20 12:27:51 +00:00
Vlad Zahorodnii
c3f970b3c3 wayland: Make XdgOutputV1Interface pull information from Output 2022-10-20 12:27:51 +00:00
Xaver Hugl
e9e97e49bf backends/drm: set drm content type when available 2022-10-20 13:46:58 +02:00
Xaver Hugl
b99ae81b08 wayland: implement the content-type protocol 2022-10-20 13:46:58 +02:00
Vlad Zahorodnii
f0376367b1 Add explicit POSITION_INDEPENDENT_CODE 2022-10-20 09:37:00 +00:00
Vlad Zahorodnii
de3aa69c1e Fix some tests not building with Qt 6
Client-side wrappers for input-method-unstable-v1 fail to build because
wl_keyboard_interface is referenced in the header file generated by
wayland-scanner.

Unfortunately, qt6_generate_wayland_protocol_client_sources() forces
--include-core-only argument, this is addressed in Qt 6.4.1, but in
meanwhile let's ship a copy of Qt6WaylandClientMacros.cmake file until
the required Qt version is out.
2022-10-20 09:37:00 +00:00
Arjen Hiemstra
cc4787500d Allow specifying a render target scale for windows
This allows overriding the render target scale when rendering windows
and makes use of it in the screencasting plugin.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
ec6b9ed67e Convert WindowPaintData's translation to device coordinates when rendering
Otherwise we're using a translation in logical coordinates as a
translation in device coordinates, which means we're not translating
enough.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
ada87dbc60 Properly scale cursordelegate_opengl to device geometry
Rather than converting to logical to then later on convert back to
device.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
642bd06cef glide: Convert to device coordinates when rendering 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
40e7dadbfe offscreeneffect: Convert to device coordinates when rendering 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
154dd33857 touchpoints: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
0133de12c3 zoom: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
9e7a7afccc snaphelper: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
846f612fcc trackmouse: Account for render target scale when rendering 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
8d93ef0221 screencast: Account for output scale when rendering 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
dea0383719 mousemark: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
b730308e2f mouseclick: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
cb093bfae4 screenedge: Account for render target scale when rendering 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
f791eb8fa7 screenshot: Account for render target scale when rendering 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
239bbf93f4 magnifier: Account for output scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
6cfeb3e3e8 Require GLTexture::render() to provide an output scale
This ensures we render the texture at the right scale while providing
geometry information in logical coordinates.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
74ff3bf082 Account for render target scale when rendering a WindowThumbnailItem
Otherwise we get too large and cut off window thumbnails.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
5a85ecd8c4 Convert to device pixels when rendering an offscreen quick view
Rendering a texture needs to be done in device pixels, not logical
pixels.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
8a69432d76 EffectsHandler: Use QRectF for mapToRenderTarget 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
2609458c8b screentransform: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
78d2c1f7e0 showpaint: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
5ab9008ca6 blur: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
9b28744de0 backgroundcontrast: Account for render target scale when creating geometry 2022-10-20 08:20:51 +00:00
Arjen Hiemstra
822e6da569 Use a perspective matrix again for the Glide and Sheet effects
Since we now use an orthographic matrix as main projection matrix, the
glide and sheet effects don't really work as intended anymore. To fix
that, copy over the old perspective matrix and use that as base rather
than the current orthographic matrix.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
6ae32076f8 Use device coordinates for geometry in the OpenGL Scene
It is quite a bit easier to reason about the conversion to device
coordinates when we actually have code that does that, instead of
implicitly assuming OpenGL handles it. Additionally, it means we don't
need to convert back to logical coordinates again when we're rounding
pixel values.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
ebc5a6c638 Add scaledRect as a helper function to scale a QRectF by a scalar
I have no idea why QRectF doesn't have this...
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
3922f468b4 Only recalculate renderTargetMatrix if it is needed
If there's no changes then there's no need to recalculate the projection
matrix.
2022-10-20 08:20:51 +00:00
Arjen Hiemstra
695cc7c010 Use an orthographic projection matrix for rendering the scene
Rather than a perspective matrix, which is rather unexpected when coming
from something like QtQuick. Generally, when doing 2D you want an
orthographic matrix so Z values do not matter.

Apparently this was originally done for 3D effects, but there are only
two of those remaining (glide and sheet) and for those, the effects
themselves can set up a perspective projection matrix.
2022-10-20 08:20:51 +00:00
Vlad Zahorodnii
085e44cdf9 scripts: Convert desktop metadata files to json metadata files 2022-10-20 07:12:31 +00:00
Vlad Zahorodnii
acc2336833 effects: Convert desktop metadata files to json metadata files 2022-10-20 07:12:31 +00:00
Vlad Zahorodnii
0c28de5b42 wayland: Add support for ext-idle-notify-v1
Wayland protocols MR: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/29
2022-10-20 06:36:58 +00:00