Weng Xuetian
90df07157b
Fix potential race condition when text input state change and focus change happened at the same time
...
In some cases, stateCommitted may fire after a new surface being focused
and in correctly set input method to be inactive. This can be reproduced
by switch client between an active text input v3 client and text input
v2 client.
2022-10-21 19:14:41 +00:00
Vlad Zahorodnii
495e127d07
autotests: Fix windowquadlist with Qt 6
...
In Qt 6, container.count() returns a qsizetype, on the other hand
expectedCount is int. That type difference makes QTEST panic.
2022-10-21 17:26:47 +00:00
Xaver Hugl
a587e426f8
add autotest for the drm platform
2022-10-21 17:54:55 +02:00
Arjen Hiemstra
85d46016a2
If SurfaceItem does not have a pixmap, return an empty WindowQuadList
...
Otherwise the caller needs to ensure that we're not calling on an item
without pixmap and if we don't, things crash.
2022-10-21 14:49:22 +00:00
Arjen Hiemstra
bb7f627acc
Introduce RenderGeometry class and use it for clipping in device coordinates
...
RenderGeometry is a list of vertices that should be rendered. It's
needed so we can convert WindowQuadList to device coordinates and do
clipping in device coordinates. The intention is also to use it to
replace arbitrary float arrays in effects eventually.
2022-10-21 14:49:22 +00:00
Arjen Hiemstra
250d271b26
Add WindowQuad::bounds() as a convenience method to get a QRectF from it
2022-10-21 14:49:22 +00:00
Arjen Hiemstra
2ad497c8f9
Round buffer positions when calculating normalised UV coordinates
...
Otherwise we end up with UVs that are slightly off as the position is
fractional while the size is integer.
2022-10-21 14:49:22 +00:00
Arjen Hiemstra
64e42bbd04
Round window and geometry positions in OpenGL scene
...
This rounds the position of geometry in the OpenGL scene, which means
things that are fractionally scaled and end up between pixel boundaries
are instead aligned to pixels. This doesn't fully solve the fractional
scaling blurriness, as we still need the application to provide a buffer
with the correct size. If we do have a buffer with the correct size, we
will now render properly aligned. For example, internal clients should
now be correct.
2022-10-21 14:49:22 +00:00
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