Commit Graph

150 Commits

Author SHA1 Message Date
Jonathan Riddell
c04ded0400 update version for new release 2024-11-26 11:41:41 +00:00
Jonathan Riddell
119854c047 update version for new release 2024-11-05 13:20:01 +00:00
Jonathan Riddell
12048142d9 update version for new release 2024-11-05 12:09:01 +00:00
Jonathan Riddell
209223f6a1 update version for new release 2024-10-15 15:21:22 +01:00
Jonathan Riddell
c45feb4094 update version for new release 2024-10-08 11:46:50 +01:00
Jonathan Riddell
3fca657826 update version for new release 2024-10-03 12:41:32 +01:00
Jonathan Riddell
2dbd1d6eb7 Update Frameworks version requirement to 6.5.0
GIT_SILENT
2024-09-12 11:08:45 +01:00
Jonathan Riddell
0d11058c8f update version for new release 2024-09-12 10:50:16 +01:00
David Redondo
a5fbaa5975 Reformat CMake code for better readability 2024-08-14 11:08:41 +02:00
David Redondo
6f8a3f5d42 Generate wayland code with PRIVATE_CODE 2024-08-14 10:47:07 +02:00
Jonathan Riddell
303f68cf10 Update Qt version requirement to 6.7.0
GIT_SILENT
2024-08-02 10:15:46 +01:00
Vlad Zahorodnii
368cf2dd37 Port to QWaylandWindow::updateExposure() 2024-07-05 09:49:38 +03:00
Vlad Zahorodnii
16a1debdca Port to QWaylandShellSurface::setWindowSize() 2024-06-26 13:01:50 +03:00
Jonathan Riddell
c4987c01c7 update version for new release 2024-05-24 16:14:22 +01:00
Jonathan Riddell
bfdf40b1b5 Update Qt version requirement to 6.6.0
GIT_SILENT
2024-05-24 13:11:58 +01:00
Jonathan Riddell
8676cf98ce update version for new release 2024-05-24 12:32:48 +01:00
Jonathan Riddell
16da49d3a9 Update Qt version requirement to 6.7.0
GIT_SILENT
2024-05-24 11:22:43 +01:00
Jonathan Riddell
97d85c8722 Update Frameworks version requirement to 6.2.0
GIT_SILENT
2024-05-24 11:22:43 +01:00
Aleix Pol Gonzalez
44e011e2c6 declarative: Add a QML extension object for accessing the margins property
Otherwise we get the following error message:
Property "margins" with type "QMargins", which is not a value type

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-05-20 10:01:24 +00:00
Nicolas Fella
05de6c67b2 Enforce passing tests on all platforms 2024-04-22 23:45:49 +02:00
Nicolas Fella
7c4706c415 Add clang-format commit hook 2024-04-21 17:51:44 +02:00
Nicolas Fella
80a047c0db Run clang-format 2024-04-21 17:50:57 +02:00
David Edmundson
2ac46d8d9d Drop now defunct code to sync resizes
This code was designed to make sure we didn't commit new buffers whilst
we were waiting for a configure. The way this worked failed in 6 after
kwin does not reply to desired_size changes immediately.

It is uneeded after kwin commit "wayland: Avoid rearranging layer
surfaces when wl_surface size changes" which means if we do submit
frames between size change requests, they'll be ignored. Meaning the
client will eventually get a configure event at the right size.
2024-04-11 17:57:14 +01:00
Vlad Zahorodnii
e8594be884 Use QWaylandWindow::windowContentGeometry() to set the initial preferred size
This matches the geometry used in the setWindowGeometry() function.
2024-04-04 14:18:38 +03:00
Vlad Zahorodnii
0a31923938 Update the desired size when the anchors change
When the anchor changes, the desired size should be updated to avoid
the compositor posting a protocol error.

BUG: 484990
2024-04-04 11:59:49 +03:00
Vlad Zahorodnii
127d817aa1 Guard against calling set_size while applying a configure event more explicitly
Depending on code path taken, geometry.size() == m_pendingSize can
produce incorrect results.

If a configure event is applied, it's fine.

If the window is resized by user, m_pendingSize will have outdated value,
and setWindowGeometry() can ignore future size updates that are valid.

In hindsight, we need special hooks in the QWaylandWindow to request and
apply new geometry. Rather than have one function that deals with all cases.
2024-04-03 15:15:37 +03:00
Jonathan Esk-Riddell
c407f9a8c4 Update Frameworks version requirement to 6.0.0
GIT_SILENT
2024-02-21 14:33:45 +00:00
David Edmundson
17be1332cf Port to asynchronous roundtrip
When a resize is driven client side we wait for the compositor to have a
chance to reconfigure us before submitting the next frame.

Using a blocking round trip caused an issue. Instead block isExposed and
trigger an expose event whilst a sync is in progress.
2024-02-16 11:31:49 +00:00
David Edmundson
697c747c58 Synchronise client driven resizing
Qt's resizing is inherently synchronous. When an application calls
QWindow::setGeometry with a new size, we expect it to make that resize.
An expose event of the requested size will be generated.

Wayland is by default async, a client requests a size, and then will be
configured to that size, or potentially another size.

The simplest way to map the two APIs is to roundtrip when the client
wants to resize. This way we can guarantee that a call to
`setGeometry();  update()` will have the server configured size before
the paint.

In practice it's still not perfect due to other issues, but at least
will sort itself out within a frame.
2024-02-14 12:08:23 +00:00
Aleix Pol Gonzalez
5cf8ad46b1 Align layershell-qt with the rest of KDE frameworks at a licence level
Makes it possible to use in certain places that otherwise it couldn't
be.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-02-12 14:15:06 +00:00
David Edmundson
6427176da4 Fix build with Qt 6.7
This also fixes a hypothetical case of a layer shell with subsurfaces
and matches the call made by xdgshell after the first configure.
2024-02-08 10:04:27 +00:00
Marco Martin
ad5246f0d0 Add a new setExclusiveEdge call in the protocol
This can be used to disambiguate the exclusive edge when the anchors are
on a corner (so there  would be 2 candidates)

it's quite quick and dirty mostly to understand if we do want to push
for something along the lines
2024-01-26 11:38:44 +00:00
Jonathan Esk-Riddell
f1e50306f8 Update version number for 6.0.80
GIT_SILENT
2024-01-10 14:04:04 +00:00
Jonathan Esk-Riddell
078f36f8f3 Update version number for 5.92.0
GIT_SILENT
2024-01-10 12:29:03 +00:00
Joshua Goins
7d3194034c Use ECM QML module so the module can be used outside of repository 2024-01-04 14:42:17 -05:00
David Redondo
e3098a660a Fix constrained check
The value in parantheses was always zero.
2023-12-21 13:58:24 +00:00
Jonathan Esk-Riddell
d379bc8d8e Update version number for 5.91.90
GIT_SILENT
2023-12-20 18:54:50 +00:00
Jonathan Esk-Riddell
715e629dd8 Update version number for 5.91.0
GIT_SILENT
2023-12-20 12:02:54 +00:00
Laurent Montel
8ae3b0aef8 Qt6 check code as apps is qt6 only. 2023-12-15 21:44:24 +01:00
Vlad Zahorodnii
6f0bca5593 Revert "Add a (temporary) way to attach popups to layer surfaces"
This reverts commit fdab1544fb.

Qt 6.6 is out with all the necessary multi-shell apis.
2023-12-08 11:55:52 +00:00
David Redondo
d1ab27dd53 Update Qt version requirement to 6.6.0
GIT_SILENT
2023-12-08 12:10:27 +01:00
Jonathan Esk-Riddell
4569e78e25 Update version number for 5.90.90
GIT_SILENT
2023-12-07 16:41:03 +00:00
Vlad Zahorodnii
ddb0490592 Change default keyboard interactivity to OnDemand
OnDemand is a better default as it still ensures that the window will
receive keyboard input by default, but it's less aggressive.
2023-11-30 10:06:18 +00:00
Vlad Zahorodnii
3c116e7550 Revert "Change default keyboard interactivity from exclusive to none"
This reverts commit be63783888.

It broke keyboard input in sddm greeter. While defaulting to a non-spec
value is not great, it's also not that critical. It might be worth
considering synchronizing Qt::WindowDoesNotAcceptFocus with the keyboard
interactivity flag, but the tricky part is that the keyboard interactivty
is not just a boolean.

BUG: 477251
2023-11-30 10:06:18 +00:00
Jonathan Esk-Riddell
9e1c5357ac Update version number for 5.90.0
GIT_SILENT
2023-11-29 10:24:25 +00:00
Laurent Montel
76e8f33cbc GIT_SILENT: Port to new CI template 2023-11-19 16:20:06 +01:00
Jonathan Esk-Riddell
25bc38dac1 Update version number for 5.81.80
GIT_SILENT
2023-11-17 12:28:29 +00:00
Jonathan Esk-Riddell
aa167e8da5 Update version number for 5.81.0
GIT_SILENT
2023-11-09 12:31:25 +00:00
David Edmundson
de9fdb3fb7 Support XDG activation
QWaylandLayerShellIntegration has virtual hooks for Xdg Activation.

This is important to hook up in layer shell because activation using
requestActivate in Qt will go through this path. It also means we have
support for us to drop the implementation in KWindowSystem in favour of
calling into Qt.
2023-11-06 12:41:20 +00:00
Jonathan Esk-Riddell
00b26a196d set ecm soversion to project major
again probably not used but feels best to make them match
2023-11-03 10:19:42 +00:00