Commit graph

23457 commits

Author SHA1 Message Date
Vlad Zahorodnii
638edf9bd6 autotests: Fix testXkb in Qt 6 build
The mapping between XKB_KEY_XF86MyComputer and Qt::Key_Launch0 has
been fixed in qt 6, so we need to adjust the test.
2022-10-23 09:11:04 +00:00
Vlad Zahorodnii
fdfa2ad403 autotests: Reorder keys in the test table in testXkb
It's easier to read.
2022-10-23 09:11:04 +00:00
Vlad Zahorodnii
64dc8d7cfe autotests: Fix testGlobalShortcuts in Qt 6 build
QXkbCommon fails to map `Ё` to `~` when pressing `Shift+grave` and
sequenceEdit seems to have focus now.

On the other hand, does it make sense to bind global shortcuts with key
sequences such as "Shift+`"? The system settings doesn't even allow typing
in such key sequences.
2022-10-23 08:41:34 +00:00
l10n daemon script
de0c94df8d GIT_SILENT Sync po/docbooks with svn 2022-10-23 01:56:56 +00:00
l10n daemon script
2ecb57b713 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-23 01:43:00 +00:00
Vlad Zahorodnii
774426d2ad autotests: Fix testXwaylandInput in Qt 6 build
The test fails because of type mismatches between QPoint and QPointF, Qt
5 is not so strict about this.
2022-10-23 00:26:54 +03:00
Vlad Zahorodnii
7c74b7de4a decorations/plastik: Provide metadata.json instead of metadata.desktop 2022-10-22 16:26:23 +00:00
Vlad Zahorodnii
2121ed72be Use correct text encoding when reading WM_CLASS, WM_NAME and WM_WINDOW_ROLE
All these properties have XCB_ATOM_STRING type. From the ICCCM spec
[2.7.1]

    STRING as a type or a target specifies the ISO Latin-1 character
    set plus the control characters TAB (octal 11) and NEWLINE (octal 12).
2022-10-22 13:38:36 +00:00
Vlad Zahorodnii
13d88081d3 Change type of Window.wmCommand and Window.wmClientMachine to QString 2022-10-22 13:38:36 +00:00
Vlad Zahorodnii
adbcb6a1a0 Change type of Window.desktopFileName to QString 2022-10-22 13:38:36 +00:00
Vlad Zahorodnii
aa838e1c02 Change type of Window.resourceName, Window.resourceClass, and Window.windowRole to QString
testDbusInterface fails with Qt 6 build because QCOMPARE detects the
type difference between QString and QByteArray.

Since these properties being byte arrays has caused reasonable amount of
discomfort, let's make them QStrings. It will fix the test and make some
scripted effect code more cleaner.
2022-10-22 13:38:36 +00:00
Volker Krause
346ac6f32b Add Qt 6 FreeBSD CI 2022-10-22 12:34:49 +00:00
Vlad Zahorodnii
f19957bdb2 autotests: Fix testWaylandSeat in Qt 6 build 2022-10-22 15:01:17 +03:00
Vlad Zahorodnii
e665c1c80a autotests: Fix testPointerConstraintsInterface with Qt 6 build
QTEST panics because of type difference (qsizetype vs int).
2022-10-22 11:12:52 +00:00
l10n daemon script
aebbce2f38 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-22 10:42:50 +00:00
l10n daemon script
6b5c492e28 GIT_SILENT Sync po/docbooks with svn 2022-10-22 01:56:56 +00:00
l10n daemon script
1282d5e331 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-22 01:43:48 +00:00
Vlad Zahorodnii
583b7b4df9 autotests: Fix PointerInputTest in Qt 6 build
PointerInputTest::testWarpingBetweenWindows() compares
QVariant(QPointF) with QPoint. While this works in Qt 5, Qt 6 seems to
take the type into account when comparing the two.
2022-10-21 22:28:33 +00:00
Vlad Zahorodnii
6e5267551e autotests: Fix TestXdgShellWindow in Qt 6 build
TestXdgShellWindow::testPointerInputTransform() compares
QVariant(QPointF) with QPoint. While this works in Qt 5, Qt 6 seems to
take the type into account when comparing the two.
2022-10-22 00:45:12 +03:00
Volker Krause
0ce90f4335 Add Qt 6 Linux CI
The CI now has the ability to limit the passing unit test requirements
to more specific platform configurations, so the not yet working Qt 6
unit tests shouldn't block this anymore.
2022-10-21 20:25:10 +00:00
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