- Ignore private QML imports
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt6/qt6-wayland?expand=0&rev=83
This commit is contained in:
commit
37b969bb06
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
@ -0,0 +1,37 @@
|
||||
From 92bcb8f6b7a852c7a5d662fc34de561692a7a454 Mon Sep 17 00:00:00 2001
|
||||
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||
Date: Thu, 20 Jun 2024 11:25:06 +0300
|
||||
Subject: [PATCH] Client: Ensure that guessed popup parent has a shell surface
|
||||
|
||||
The last input window may not have a shell surface if it is a subsurface
|
||||
or that window has been just made invisible.
|
||||
|
||||
Change-Id: Iad11c68659579429ddc5d9ba0038975b25da8e0d
|
||||
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||
(cherry picked from commit 52c406cec149634680489faeeaf06bb1258cd12f)
|
||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||
(cherry picked from commit 7d04c18531276c94bfdf2f9a955d6f02554b28b2)
|
||||
---
|
||||
src/client/qwaylandwindow.cpp | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
|
||||
index 22aeba10..c3725ffc 100644
|
||||
--- a/src/client/qwaylandwindow.cpp
|
||||
+++ b/src/client/qwaylandwindow.cpp
|
||||
@@ -1157,8 +1157,10 @@ QWaylandWindow *QWaylandWindow::guessTransientParent() const
|
||||
return mTopPopup;
|
||||
}
|
||||
|
||||
- if (window()->type() == Qt::ToolTip || window()->type() == Qt::Popup)
|
||||
- return display()->lastInputWindow();
|
||||
+ if (window()->type() == Qt::ToolTip || window()->type() == Qt::Popup) {
|
||||
+ if (auto lastInputWindow = display()->lastInputWindow())
|
||||
+ return closestShellSurfaceWindow(lastInputWindow->window());
|
||||
+ }
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
--
|
||||
2.45.2
|
||||
|
@ -0,0 +1,44 @@
|
||||
From 8811c62a0c31443ee888a67df2e960bc040f3dcc Mon Sep 17 00:00:00 2001
|
||||
From: David Edmundson <davidedmundson@kde.org>
|
||||
Date: Wed, 10 Jul 2024 09:00:33 +0100
|
||||
Subject: [PATCH 1/2] client: Guard against windows being on a null screen
|
||||
|
||||
calculateScreenFromSurfaceEvents uses the screen information from our
|
||||
surface enter events. If this is not set yet, or refers to outputs not
|
||||
yet complete we fall back to the QWindow::screen. This was introduced in
|
||||
e03613524fc9f6be5c4cd7e9bdb00bc09c7f1e0b.
|
||||
|
||||
It was assumed that this would always be a valid value as QtBase keeps
|
||||
it updated, but there are apparently paths for it to still be null.
|
||||
|
||||
It will be evaluated again when the surface receives a wl_enter event or
|
||||
the output that we have entered is finally initialised and we will then
|
||||
be marked as on the correct screen.
|
||||
|
||||
Change-Id: I33b4a5112c3426a8ea523d39a0658ba7ffee5298
|
||||
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
||||
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||
(cherry picked from commit c4f91b479303dda2e49499de249018d7c66c5f99)
|
||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||
(cherry picked from commit ec07c90cd647fd7a647f3f10dcae4d18699263df)
|
||||
(cherry picked from commit 406995207eae8d644b6e5262aa716a48c7e471a8)
|
||||
---
|
||||
src/client/qwaylandwindow.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
|
||||
index 22aeba10..c64f3326 100644
|
||||
--- a/src/client/qwaylandwindow.cpp
|
||||
+++ b/src/client/qwaylandwindow.cpp
|
||||
@@ -1405,7 +1405,7 @@ void QWaylandWindow::handleScreensChanged()
|
||||
{
|
||||
QPlatformScreen *newScreen = calculateScreenFromSurfaceEvents();
|
||||
|
||||
- if (newScreen->screen() == window()->screen())
|
||||
+ if (!newScreen || newScreen->screen() == window()->screen())
|
||||
return;
|
||||
|
||||
QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
|
||||
--
|
||||
2.45.2
|
||||
|
263
0001-client-Redo-management-of-tablet-object-proxies.patch
Normal file
263
0001-client-Redo-management-of-tablet-object-proxies.patch
Normal file
@ -0,0 +1,263 @@
|
||||
From 24002ac6cbd01dbde4944b63c1f7c87ed2bd72b5 Mon Sep 17 00:00:00 2001
|
||||
From: David Redondo <qt@david-redondo.de>
|
||||
Date: Fri, 22 Nov 2024 10:56:41 +0100
|
||||
Subject: [PATCH] client: Redo management of tablet object proxies
|
||||
|
||||
Since 5af836aea3bb91a9f388e565415dc33b2fde4577 tools and pads can sometimes
|
||||
be parented to tablets. When a tablet is unplugged sometimes the remove
|
||||
event for the tablet can be sent before the remove events for the pad.
|
||||
Deleting the tablet will also delete the pad but not the pad proxy,
|
||||
resulting in a crash when the pad remove event is received.
|
||||
This moves destruction of the wayland proxies which makes everything much
|
||||
simpler as not every location that deletes those objects needs to call
|
||||
destroy and fixes the described problem.
|
||||
|
||||
Change-Id: I0aaeda3d3996251e411229b5e97aa1ce0bce43ac
|
||||
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||
(cherry picked from commit 1f76835d1805d9b1c25c136a19c1101f19cc2259)
|
||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||
---
|
||||
src/client/qwaylandtabletv2.cpp | 24 +++++----
|
||||
src/client/qwaylandtabletv2_p.h | 4 +-
|
||||
tests/auto/client/tabletv2/tst_tabletv2.cpp | 60 +++++++++++++++++----
|
||||
3 files changed, 67 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/src/client/qwaylandtabletv2.cpp b/src/client/qwaylandtabletv2.cpp
|
||||
index 305aae50..c3f665df 100644
|
||||
--- a/src/client/qwaylandtabletv2.cpp
|
||||
+++ b/src/client/qwaylandtabletv2.cpp
|
||||
@@ -185,12 +185,6 @@ QWaylandTabletSeatV2::QWaylandTabletSeatV2(QWaylandTabletManagerV2 *manager, QWa
|
||||
|
||||
QWaylandTabletSeatV2::~QWaylandTabletSeatV2()
|
||||
{
|
||||
- for (auto *tablet : m_tablets)
|
||||
- tablet->destroy();
|
||||
- for (auto *tool : m_tools)
|
||||
- tool->destroy();
|
||||
- for (auto *pad : m_pads)
|
||||
- pad->destroy();
|
||||
qDeleteAll(m_tablets);
|
||||
qDeleteAll(m_tools);
|
||||
qDeleteAll(m_deadTools);
|
||||
@@ -252,6 +246,11 @@ QWaylandTabletV2::QWaylandTabletV2(::zwp_tablet_v2 *tablet, const QString &seatN
|
||||
d->seatName = seatName;
|
||||
}
|
||||
|
||||
+QWaylandTabletV2::~QWaylandTabletV2()
|
||||
+{
|
||||
+ destroy();
|
||||
+}
|
||||
+
|
||||
void QWaylandTabletV2::zwp_tablet_v2_name(const QString &name)
|
||||
{
|
||||
QPointingDevicePrivate *d = QPointingDevicePrivate::get(this);
|
||||
@@ -290,7 +289,6 @@ void QWaylandTabletSeatV2::toolRemoved(QWaylandTabletToolV2 *tool)
|
||||
|
||||
void QWaylandTabletV2::zwp_tablet_v2_removed()
|
||||
{
|
||||
- destroy();
|
||||
deleteLater();
|
||||
}
|
||||
|
||||
@@ -314,7 +312,10 @@ QWaylandTabletToolV2::QWaylandTabletToolV2(QWaylandTabletSeatV2 *tabletSeat, ::z
|
||||
#endif
|
||||
}
|
||||
|
||||
-QWaylandTabletToolV2::~QWaylandTabletToolV2() = default;
|
||||
+QWaylandTabletToolV2::~QWaylandTabletToolV2()
|
||||
+{
|
||||
+ destroy();
|
||||
+}
|
||||
|
||||
void QWaylandTabletToolV2::zwp_tablet_tool_v2_type(uint32_t tool_type)
|
||||
{
|
||||
@@ -408,7 +409,6 @@ void QWaylandTabletToolV2::zwp_tablet_tool_v2_done()
|
||||
|
||||
void QWaylandTabletToolV2::zwp_tablet_tool_v2_removed()
|
||||
{
|
||||
- destroy();
|
||||
m_tabletSeat->toolRemoved(this);
|
||||
}
|
||||
|
||||
@@ -600,6 +600,11 @@ QWaylandTabletPadV2::QWaylandTabletPadV2(::zwp_tablet_pad_v2 *pad)
|
||||
{
|
||||
}
|
||||
|
||||
+QWaylandTabletPadV2::~QWaylandTabletPadV2()
|
||||
+{
|
||||
+ destroy();
|
||||
+}
|
||||
+
|
||||
void QWaylandTabletPadV2::zwp_tablet_pad_v2_path(const QString &path)
|
||||
{
|
||||
QPointingDevicePrivate *d = QPointingDevicePrivate::get(this);
|
||||
@@ -619,7 +624,6 @@ void QWaylandTabletPadV2::zwp_tablet_pad_v2_done()
|
||||
|
||||
void QWaylandTabletPadV2::zwp_tablet_pad_v2_removed()
|
||||
{
|
||||
- destroy();
|
||||
delete this;
|
||||
}
|
||||
|
||||
diff --git a/src/client/qwaylandtabletv2_p.h b/src/client/qwaylandtabletv2_p.h
|
||||
index 94b687ee..f0d7cd18 100644
|
||||
--- a/src/client/qwaylandtabletv2_p.h
|
||||
+++ b/src/client/qwaylandtabletv2_p.h
|
||||
@@ -83,6 +83,7 @@ class Q_WAYLANDCLIENT_EXPORT QWaylandTabletV2 : public QPointingDevice, public Q
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QWaylandTabletV2(::zwp_tablet_v2 *tablet, const QString &seatName);
|
||||
+ ~QWaylandTabletV2();
|
||||
|
||||
protected:
|
||||
// callbacks which act as setters
|
||||
@@ -98,7 +99,7 @@ class Q_WAYLANDCLIENT_EXPORT QWaylandTabletToolV2 : public QPointingDevice, publ
|
||||
Q_OBJECT
|
||||
public:
|
||||
QWaylandTabletToolV2(QWaylandTabletSeatV2 *tabletSeat, ::zwp_tablet_tool_v2 *tool);
|
||||
- ~QWaylandTabletToolV2() override;
|
||||
+ ~QWaylandTabletToolV2();
|
||||
|
||||
void updateCursor();
|
||||
|
||||
@@ -181,6 +182,7 @@ class Q_WAYLANDCLIENT_EXPORT QWaylandTabletPadV2 : public QPointingDevice, publi
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QWaylandTabletPadV2(::zwp_tablet_pad_v2 *pad);
|
||||
+ ~QWaylandTabletPadV2();
|
||||
|
||||
protected:
|
||||
// void zwp_tablet_pad_v2_group(struct ::zwp_tablet_pad_group_v2 *pad_group) override;
|
||||
diff --git a/tests/auto/client/tabletv2/tst_tabletv2.cpp b/tests/auto/client/tabletv2/tst_tabletv2.cpp
|
||||
index 85df099f..d5c2ccb3 100644
|
||||
--- a/tests/auto/client/tabletv2/tst_tabletv2.cpp
|
||||
+++ b/tests/auto/client/tabletv2/tst_tabletv2.cpp
|
||||
@@ -186,9 +186,9 @@ public:
|
||||
QList<TabletV2 *> m_tablets;
|
||||
QList<TabletV2 *> m_tabletsWaitingForDestroy;
|
||||
QList<TabletToolV2 *> m_tools;
|
||||
- QList<TabletToolV2 *> m_toolsWaitingForDestroy;
|
||||
+ QList<TabletToolV2::Resource *> m_toolsWaitingForDestroy;
|
||||
QList<TabletPadV2 *> m_pads;
|
||||
- QList<TabletPadV2 *> m_padsWaitingForDestroy;
|
||||
+ QList<TabletPadV2::Resource *> m_padsWaitingForDestroy;
|
||||
|
||||
protected:
|
||||
void zwp_tablet_seat_v2_bind_resource(Resource *resource) override
|
||||
@@ -274,11 +274,12 @@ void TabletV2::zwp_tablet_v2_destroy(QtWaylandServer::zwp_tablet_v2::Resource *r
|
||||
|
||||
void TabletToolV2::sendRemoved()
|
||||
{
|
||||
- for (auto *resource : resourceMap())
|
||||
+ for (auto *resource : resourceMap()) {
|
||||
zwp_tablet_tool_v2_send_removed(resource->handle);
|
||||
+ m_tabletSeat->m_toolsWaitingForDestroy.append(resource);
|
||||
+ }
|
||||
bool removed = m_tabletSeat->m_tools.removeOne(this);
|
||||
QVERIFY(removed);
|
||||
- m_tabletSeat->m_toolsWaitingForDestroy.append(this);
|
||||
}
|
||||
|
||||
uint TabletToolV2::sendProximityIn(TabletV2 *tablet, Surface *surface)
|
||||
@@ -333,26 +334,25 @@ uint TabletToolV2::sendFrame()
|
||||
void TabletToolV2::zwp_tablet_tool_v2_destroy(QtWaylandServer::zwp_tablet_tool_v2::Resource *resource)
|
||||
{
|
||||
if (m_tabletSeat) {
|
||||
- bool removed = m_tabletSeat->m_toolsWaitingForDestroy.removeOne(this);
|
||||
- QVERIFY(removed);
|
||||
+ m_tabletSeat->m_toolsWaitingForDestroy.removeOne(resource);
|
||||
}
|
||||
wl_resource_destroy(resource->handle);
|
||||
}
|
||||
|
||||
void TabletPadV2::sendRemoved()
|
||||
{
|
||||
- for (auto *resource : resourceMap())
|
||||
+ for (auto *resource : resourceMap()) {
|
||||
zwp_tablet_pad_v2_send_removed(resource->handle);
|
||||
+ m_tabletSeat->m_padsWaitingForDestroy.append(resource);
|
||||
+ }
|
||||
bool removed = m_tabletSeat->m_pads.removeOne(this);
|
||||
QVERIFY(removed);
|
||||
- m_tabletSeat->m_padsWaitingForDestroy.append(this);
|
||||
}
|
||||
|
||||
void TabletPadV2::zwp_tablet_pad_v2_destroy(QtWaylandServer::zwp_tablet_pad_v2::Resource *resource)
|
||||
{
|
||||
if (m_tabletSeat) {
|
||||
- bool removed = m_tabletSeat->m_padsWaitingForDestroy.removeOne(this);
|
||||
- QVERIFY(removed);
|
||||
+ m_tabletSeat->m_padsWaitingForDestroy.removeOne(resource);
|
||||
}
|
||||
wl_resource_destroy(resource->handle);
|
||||
}
|
||||
@@ -405,6 +405,8 @@ private slots:
|
||||
void destroysTablet();
|
||||
void destroysTool();
|
||||
void destroysPad();
|
||||
+ void removeTabletBeforeTool();
|
||||
+ void removeTabletBeforePad();
|
||||
void proximityEvents();
|
||||
void moveEvent();
|
||||
void pointerType_data();
|
||||
@@ -502,12 +504,14 @@ void tst_tabletv2::destroysTool()
|
||||
{
|
||||
QCOMPOSITOR_TRY_VERIFY(tabletSeat());
|
||||
exec([&] {
|
||||
+ tabletSeat()->addTablet();
|
||||
tabletSeat()->addTool();
|
||||
});
|
||||
QCOMPOSITOR_TRY_VERIFY(tabletTool());
|
||||
|
||||
exec([&] {
|
||||
tabletTool()->sendRemoved();
|
||||
+ tablet()->sendRemoved();
|
||||
});
|
||||
|
||||
QCOMPOSITOR_TRY_VERIFY(!tabletTool());
|
||||
@@ -530,6 +534,42 @@ void tst_tabletv2::destroysPad()
|
||||
QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_padsWaitingForDestroy.empty());
|
||||
}
|
||||
|
||||
+void tst_tabletv2::removeTabletBeforeTool()
|
||||
+{
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletSeat());
|
||||
+ exec([&] {
|
||||
+ tabletSeat()->addTablet();
|
||||
+ tabletSeat()->addTool();
|
||||
+ });
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tablet());
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletTool());
|
||||
+
|
||||
+ exec([&] { tablet()->sendRemoved(); });
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_tabletsWaitingForDestroy.empty());
|
||||
+
|
||||
+ exec([&] { tabletTool()->sendRemoved(); });
|
||||
+ QCOMPOSITOR_TRY_VERIFY(!tabletTool());
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_toolsWaitingForDestroy.empty());
|
||||
+}
|
||||
+
|
||||
+void tst_tabletv2::removeTabletBeforePad()
|
||||
+{
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletSeat());
|
||||
+ exec([&] {
|
||||
+ tabletSeat()->addTablet();
|
||||
+ tabletSeat()->addPad();
|
||||
+ });
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tablet());
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletPad());
|
||||
+
|
||||
+ exec([&] { tablet()->sendRemoved(); });
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_tabletsWaitingForDestroy.empty());
|
||||
+
|
||||
+ exec([&] { tabletPad()->sendRemoved(); });
|
||||
+ QCOMPOSITOR_TRY_VERIFY(!tabletPad());
|
||||
+ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_padsWaitingForDestroy.empty());
|
||||
+}
|
||||
+
|
||||
void tst_tabletv2::proximityEvents()
|
||||
{
|
||||
ProximityFilter filter;
|
||||
--
|
||||
2.47.1
|
||||
|
25
0001-fix-crash-issue.patch
Normal file
25
0001-fix-crash-issue.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 6f87a84b8e72c3676ee9cf7190b8ae1f82387353 Mon Sep 17 00:00:00 2001
|
||||
From: Heng Liu <liuhenga@uniontech.com>
|
||||
Date: Fri, 25 Oct 2024 10:17:45 +0800
|
||||
Subject: [PATCH] fix crash when attach differ shellsurface to the same shellsurfaceitem
|
||||
|
||||
Change shellSurface from a raw pointer to a QPointer to prevent
|
||||
crash caused by accessing the wild pointer when shellSurface is destroyed
|
||||
|
||||
Pick-to: 6.8
|
||||
Change-Id: Iabf25ce9e3fab416b5b927bf768e94398516a710
|
||||
---
|
||||
|
||||
diff --git a/src/compositor/extensions/qwaylandquickshellsurfaceitem_p.h b/src/compositor/extensions/qwaylandquickshellsurfaceitem_p.h
|
||||
index 46e5f65..10b10a0 100644
|
||||
--- a/src/compositor/extensions/qwaylandquickshellsurfaceitem_p.h
|
||||
+++ b/src/compositor/extensions/qwaylandquickshellsurfaceitem_p.h
|
||||
@@ -41,7 +41,7 @@
|
||||
void lower() override;
|
||||
|
||||
QWaylandQuickShellIntegration *m_shellIntegration = nullptr;
|
||||
- QWaylandShellSurface *m_shellSurface = nullptr;
|
||||
+ QPointer<QWaylandShellSurface> m_shellSurface = nullptr;
|
||||
QQuickItem *m_moveItem = nullptr;
|
||||
bool m_autoCreatePopupItems = true;
|
||||
bool staysOnTop = false;
|
488
0001-update-wayland_xml-to-version-1_23_0.patch
Normal file
488
0001-update-wayland_xml-to-version-1_23_0.patch
Normal file
@ -0,0 +1,488 @@
|
||||
From c2f61bc47baacf2e6a44c6c3c4e4cbf0abfa4095 Mon Sep 17 00:00:00 2001
|
||||
From: Liang Qi <liang.qi@qt.io>
|
||||
Date: Wed, 3 Jul 2024 15:06:09 +0200
|
||||
Subject: [PATCH] Update wayland.xml to version 1.23.0
|
||||
|
||||
This updates only the protocol definition, implementations
|
||||
will need additional commits to opt into using them.
|
||||
|
||||
Change-Id: I5999e6dd75dfff7d904981fb1545d58c8b38ceb0
|
||||
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||
---
|
||||
src/3rdparty/protocol/wayland/wayland.xml | 215 ++++++++++++++++++++++--------
|
||||
1 file changed, 156 insertions(+), 59 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/protocol/wayland/wayland.xml b/src/3rdparty/protocol/wayland/wayland.xml
|
||||
index 10e039d6e..9418c62f3 100644
|
||||
--- a/src/3rdparty/protocol/wayland/wayland.xml
|
||||
+++ b/src/3rdparty/protocol/wayland/wayland.xml
|
||||
@@ -46,7 +46,7 @@
|
||||
compositor after the callback is fired and as such the client must not
|
||||
attempt to use it after that point.
|
||||
|
||||
- The callback_data passed in the callback is the event serial.
|
||||
+ The callback_data passed in the callback is undefined and should be ignored.
|
||||
</description>
|
||||
<arg name="callback" type="new_id" interface="wl_callback"
|
||||
summary="callback object for the sync request"/>
|
||||
@@ -212,7 +212,7 @@
|
||||
</request>
|
||||
</interface>
|
||||
|
||||
- <interface name="wl_shm_pool" version="1">
|
||||
+ <interface name="wl_shm_pool" version="2">
|
||||
<description summary="a shared memory pool">
|
||||
The wl_shm_pool object encapsulates a piece of memory shared
|
||||
between the compositor and client. Through the wl_shm_pool
|
||||
@@ -262,17 +262,17 @@
|
||||
created, but using the new size. This request can only be
|
||||
used to make the pool bigger.
|
||||
|
||||
- This request only changes the amount of bytes that are mmapped
|
||||
- by the server and does not touch the file corresponding to the
|
||||
- file descriptor passed at creation time. It is the client's
|
||||
- responsibility to ensure that the file is at least as big as
|
||||
- the new pool size.
|
||||
+ This request only changes the amount of bytes that are mmapped
|
||||
+ by the server and does not touch the file corresponding to the
|
||||
+ file descriptor passed at creation time. It is the client's
|
||||
+ responsibility to ensure that the file is at least as big as
|
||||
+ the new pool size.
|
||||
</description>
|
||||
<arg name="size" type="int" summary="new size of the pool, in bytes"/>
|
||||
</request>
|
||||
</interface>
|
||||
|
||||
- <interface name="wl_shm" version="1">
|
||||
+ <interface name="wl_shm" version="2">
|
||||
<description summary="shared memory support">
|
||||
A singleton global object that provides support for shared
|
||||
memory.
|
||||
@@ -419,6 +419,21 @@
|
||||
<entry name="xbgr16161616" value="0x38344258" summary="[63:0] x:B:G:R 16:16:16:16 little endian"/>
|
||||
<entry name="argb16161616" value="0x38345241" summary="[63:0] A:R:G:B 16:16:16:16 little endian"/>
|
||||
<entry name="abgr16161616" value="0x38344241" summary="[63:0] A:B:G:R 16:16:16:16 little endian"/>
|
||||
+ <entry name="c1" value="0x20203143" summary="[7:0] C0:C1:C2:C3:C4:C5:C6:C7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
|
||||
+ <entry name="c2" value="0x20203243" summary="[7:0] C0:C1:C2:C3 2:2:2:2 four pixels/byte"/>
|
||||
+ <entry name="c4" value="0x20203443" summary="[7:0] C0:C1 4:4 two pixels/byte"/>
|
||||
+ <entry name="d1" value="0x20203144" summary="[7:0] D0:D1:D2:D3:D4:D5:D6:D7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
|
||||
+ <entry name="d2" value="0x20203244" summary="[7:0] D0:D1:D2:D3 2:2:2:2 four pixels/byte"/>
|
||||
+ <entry name="d4" value="0x20203444" summary="[7:0] D0:D1 4:4 two pixels/byte"/>
|
||||
+ <entry name="d8" value="0x20203844" summary="[7:0] D"/>
|
||||
+ <entry name="r1" value="0x20203152" summary="[7:0] R0:R1:R2:R3:R4:R5:R6:R7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
|
||||
+ <entry name="r2" value="0x20203252" summary="[7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte"/>
|
||||
+ <entry name="r4" value="0x20203452" summary="[7:0] R0:R1 4:4 two pixels/byte"/>
|
||||
+ <entry name="r10" value="0x20303152" summary="[15:0] x:R 6:10 little endian"/>
|
||||
+ <entry name="r12" value="0x20323152" summary="[15:0] x:R 4:12 little endian"/>
|
||||
+ <entry name="avuy8888" value="0x59555641" summary="[31:0] A:Cr:Cb:Y 8:8:8:8 little endian"/>
|
||||
+ <entry name="xvuy8888" value="0x59555658" summary="[31:0] X:Cr:Cb:Y 8:8:8:8 little endian"/>
|
||||
+ <entry name="p030" value="0x30333050" summary="2x2 subsampled Cr:Cb plane 10 bits per channel packed"/>
|
||||
</enum>
|
||||
|
||||
<request name="create_pool">
|
||||
@@ -442,6 +457,17 @@
|
||||
</description>
|
||||
<arg name="format" type="uint" enum="format" summary="buffer pixel format"/>
|
||||
</event>
|
||||
+
|
||||
+ <!-- Version 2 additions -->
|
||||
+
|
||||
+ <request name="release" type="destructor" since="2">
|
||||
+ <description summary="release the shm object">
|
||||
+ Using this request a client can tell the server that it is not going to
|
||||
+ use the shm object anymore.
|
||||
+
|
||||
+ Objects created via this interface remain unaffected.
|
||||
+ </description>
|
||||
+ </request>
|
||||
</interface>
|
||||
|
||||
<interface name="wl_buffer" version="1">
|
||||
@@ -453,9 +479,11 @@
|
||||
client provides and updates the contents is defined by the buffer factory
|
||||
interface.
|
||||
|
||||
- If the buffer uses a format that has an alpha channel, the alpha channel
|
||||
- is assumed to be premultiplied in the color channels unless otherwise
|
||||
- specified.
|
||||
+ Color channels are assumed to be electrical rather than optical (in other
|
||||
+ words, encoded with a transfer function) unless otherwise specified. If
|
||||
+ the buffer uses a format that has an alpha channel, the alpha channel is
|
||||
+ assumed to be premultiplied into the electrical color channel values
|
||||
+ (after transfer function encoding) unless otherwise specified.
|
||||
|
||||
Note, because wl_buffer objects are created from multiple independent
|
||||
factory interfaces, the wl_buffer interface is frozen at version 1.
|
||||
@@ -847,6 +875,7 @@
|
||||
|
||||
<enum name="error">
|
||||
<entry name="role" value="0" summary="given wl_surface has another role"/>
|
||||
+ <entry name="used_source" value="1" summary="source has already been used"/>
|
||||
</enum>
|
||||
|
||||
<request name="start_drag">
|
||||
@@ -868,7 +897,7 @@
|
||||
The icon surface is an optional (can be NULL) surface that
|
||||
provides an icon to be moved around with the cursor. Initially,
|
||||
the top-left corner of the icon surface is placed at the cursor
|
||||
- hotspot, but subsequent wl_surface.attach request can move the
|
||||
+ hotspot, but subsequent wl_surface.offset requests can move the
|
||||
relative position. Attach requests must be confirmed with
|
||||
wl_surface.commit as usual. The icon surface is given the role of
|
||||
a drag-and-drop icon. If the icon surface already has another role,
|
||||
@@ -876,6 +905,10 @@
|
||||
|
||||
The input region is ignored for wl_surfaces with the role of a
|
||||
drag-and-drop icon.
|
||||
+
|
||||
+ The given source may not be used in any further set_selection or
|
||||
+ start_drag requests. Attempting to reuse a previously-used source
|
||||
+ may send a used_source error.
|
||||
</description>
|
||||
<arg name="source" type="object" interface="wl_data_source" allow-null="true" summary="data source for the eventual transfer"/>
|
||||
<arg name="origin" type="object" interface="wl_surface" summary="surface where the drag originates"/>
|
||||
@@ -889,6 +922,10 @@
|
||||
to the data from the source on behalf of the client.
|
||||
|
||||
To unset the selection, set the source to NULL.
|
||||
+
|
||||
+ The given source may not be used in any further set_selection or
|
||||
+ start_drag requests. Attempting to reuse a previously-used source
|
||||
+ may send a used_source error.
|
||||
</description>
|
||||
<arg name="source" type="object" interface="wl_data_source" allow-null="true" summary="data source for the selection"/>
|
||||
<arg name="serial" type="uint" summary="serial number of the event that triggered this request"/>
|
||||
@@ -1411,7 +1448,7 @@
|
||||
<entry name="invalid_size" value="2" summary="buffer size is invalid"/>
|
||||
<entry name="invalid_offset" value="3" summary="buffer offset is invalid"/>
|
||||
<entry name="defunct_role_object" value="4"
|
||||
- summary="surface was destroyed before its role object"/>
|
||||
+ summary="surface was destroyed before its role object"/>
|
||||
</enum>
|
||||
|
||||
<request name="destroy" type="destructor">
|
||||
@@ -1440,9 +1477,9 @@
|
||||
|
||||
When the bound wl_surface version is 5 or higher, passing any
|
||||
non-zero x or y is a protocol violation, and will result in an
|
||||
- 'invalid_offset' error being raised. The x and y arguments are ignored
|
||||
- and do not change the pending state. To achieve equivalent semantics,
|
||||
- use wl_surface.offset.
|
||||
+ 'invalid_offset' error being raised. The x and y arguments are ignored
|
||||
+ and do not change the pending state. To achieve equivalent semantics,
|
||||
+ use wl_surface.offset.
|
||||
|
||||
Surface contents are double-buffered state, see wl_surface.commit.
|
||||
|
||||
@@ -1479,6 +1516,13 @@
|
||||
|
||||
If wl_surface.attach is sent with a NULL wl_buffer, the
|
||||
following wl_surface.commit will remove the surface content.
|
||||
+
|
||||
+ If a pending wl_buffer has been destroyed, the result is not specified.
|
||||
+ Many compositors are known to remove the surface content on the following
|
||||
+ wl_surface.commit, but this behaviour is not universal. Clients seeking to
|
||||
+ maximise compatibility should not destroy pending buffers and should
|
||||
+ ensure that they explicitly remove content from surfaces, even after
|
||||
+ destroying buffers.
|
||||
</description>
|
||||
<arg name="buffer" type="object" interface="wl_buffer" allow-null="true"
|
||||
summary="buffer of surface contents"/>
|
||||
@@ -1618,16 +1662,18 @@
|
||||
<description summary="commit pending surface state">
|
||||
Surface state (input, opaque, and damage regions, attached buffers,
|
||||
etc.) is double-buffered. Protocol requests modify the pending state,
|
||||
- as opposed to the current state in use by the compositor. A commit
|
||||
- request atomically applies all pending state, replacing the current
|
||||
- state. After commit, the new pending state is as documented for each
|
||||
- related request.
|
||||
+ as opposed to the active state in use by the compositor.
|
||||
|
||||
- On commit, a pending wl_buffer is applied first, and all other state
|
||||
- second. This means that all coordinates in double-buffered state are
|
||||
- relative to the new wl_buffer coming into use, except for
|
||||
- wl_surface.attach itself. If there is no pending wl_buffer, the
|
||||
- coordinates are relative to the current surface contents.
|
||||
+ A commit request atomically creates a content update from the pending
|
||||
+ state, even if the pending state has not been touched. The content
|
||||
+ update is placed in a queue until it becomes active. After commit, the
|
||||
+ new pending state is as documented for each related request.
|
||||
+
|
||||
+ When the content update is applied, the wl_buffer is applied before all
|
||||
+ other state. This means that all coordinates in double-buffered state
|
||||
+ are relative to the newly attached wl_buffers, except for
|
||||
+ wl_surface.attach itself. If there is no newly attached wl_buffer, the
|
||||
+ coordinates are relative to the previous content update.
|
||||
|
||||
All requests that need a commit to become effective are documented
|
||||
to affect double-buffered state.
|
||||
@@ -1666,10 +1712,12 @@
|
||||
|
||||
<request name="set_buffer_transform" since="2">
|
||||
<description summary="sets the buffer transformation">
|
||||
- This request sets an optional transformation on how the compositor
|
||||
- interprets the contents of the buffer attached to the surface. The
|
||||
- accepted values for the transform parameter are the values for
|
||||
- wl_output.transform.
|
||||
+ This request sets the transformation that the client has already applied
|
||||
+ to the content of the buffer. The accepted values for the transform
|
||||
+ parameter are the values for wl_output.transform.
|
||||
+
|
||||
+ The compositor applies the inverse of this transformation whenever it
|
||||
+ uses the buffer contents.
|
||||
|
||||
Buffer transform is double-buffered state, see wl_surface.commit.
|
||||
|
||||
@@ -1725,11 +1773,11 @@
|
||||
a buffer that is larger (by a factor of scale in each dimension)
|
||||
than the desired surface size.
|
||||
|
||||
- If scale is not positive the invalid_scale protocol error is
|
||||
+ If scale is not greater than 0 the invalid_scale protocol error is
|
||||
raised.
|
||||
</description>
|
||||
<arg name="scale" type="int"
|
||||
- summary="positive scale for interpreting buffer contents"/>
|
||||
+ summary="scale for interpreting buffer contents"/>
|
||||
</request>
|
||||
|
||||
<!-- Version 4 additions -->
|
||||
@@ -1802,10 +1850,15 @@
|
||||
This event indicates the preferred buffer scale for this surface. It is
|
||||
sent whenever the compositor's preference changes.
|
||||
|
||||
+ Before receiving this event the preferred buffer scale for this surface
|
||||
+ is 1.
|
||||
+
|
||||
It is intended that scaling aware clients use this event to scale their
|
||||
content and use wl_surface.set_buffer_scale to indicate the scale they
|
||||
have rendered with. This allows clients to supply a higher detail
|
||||
buffer.
|
||||
+
|
||||
+ The compositor shall emit a scale value greater than 0.
|
||||
</description>
|
||||
<arg name="factor" type="int" summary="preferred scaling factor"/>
|
||||
</event>
|
||||
@@ -1815,9 +1868,12 @@
|
||||
This event indicates the preferred buffer transform for this surface.
|
||||
It is sent whenever the compositor's preference changes.
|
||||
|
||||
- It is intended that transform aware clients use this event to apply the
|
||||
- transform to their content and use wl_surface.set_buffer_transform to
|
||||
- indicate the transform they have rendered with.
|
||||
+ Before receiving this event the preferred buffer transform for this
|
||||
+ surface is normal.
|
||||
+
|
||||
+ Applying this transformation to the surface buffer contents and using
|
||||
+ wl_surface.set_buffer_transform might allow the compositor to use the
|
||||
+ surface buffer more efficiently.
|
||||
</description>
|
||||
<arg name="transform" type="uint" enum="wl_output.transform"
|
||||
summary="preferred transform"/>
|
||||
@@ -1992,9 +2048,9 @@
|
||||
where (x, y) are the coordinates of the pointer location, in
|
||||
surface-local coordinates.
|
||||
|
||||
- On surface.attach requests to the pointer surface, hotspot_x
|
||||
+ On wl_surface.offset requests to the pointer surface, hotspot_x
|
||||
and hotspot_y are decremented by the x and y parameters
|
||||
- passed to the request. Attach must be confirmed by
|
||||
+ passed to the request. The offset must be applied by
|
||||
wl_surface.commit as usual.
|
||||
|
||||
The hotspot can also be updated by passing the currently set
|
||||
@@ -2248,7 +2304,7 @@
|
||||
<arg name="axis" type="uint" enum="axis" summary="the axis stopped with this event"/>
|
||||
</event>
|
||||
|
||||
- <event name="axis_discrete" since="5">
|
||||
+ <event name="axis_discrete" since="5" deprecated-since="8">
|
||||
<description summary="axis click event">
|
||||
Discrete step information for scroll and other axes.
|
||||
|
||||
@@ -2374,6 +2430,16 @@
|
||||
<description summary="keyboard input device">
|
||||
The wl_keyboard interface represents one or more keyboards
|
||||
associated with a seat.
|
||||
+
|
||||
+ Each wl_keyboard has the following logical state:
|
||||
+
|
||||
+ - an active surface (possibly null),
|
||||
+ - the keys currently logically down,
|
||||
+ - the active modifiers,
|
||||
+ - the active group.
|
||||
+
|
||||
+ By default, the active surface is null, the keys currently logically down
|
||||
+ are empty, the active modifiers and the active group are 0.
|
||||
</description>
|
||||
|
||||
<enum name="keymap_format">
|
||||
@@ -2408,10 +2474,15 @@
|
||||
|
||||
The compositor must send the wl_keyboard.modifiers event after this
|
||||
event.
|
||||
+
|
||||
+ In the wl_keyboard logical state, this event sets the active surface to
|
||||
+ the surface argument and the keys currently logically down to the keys
|
||||
+ in the keys argument. The compositor must not send this event if the
|
||||
+ wl_keyboard already had an active surface immediately before this event.
|
||||
</description>
|
||||
<arg name="serial" type="uint" summary="serial number of the enter event"/>
|
||||
<arg name="surface" type="object" interface="wl_surface" summary="surface gaining keyboard focus"/>
|
||||
- <arg name="keys" type="array" summary="the currently pressed keys"/>
|
||||
+ <arg name="keys" type="array" summary="the keys currently logically down"/>
|
||||
</event>
|
||||
|
||||
<event name="leave">
|
||||
@@ -2422,8 +2493,10 @@
|
||||
The leave notification is sent before the enter notification
|
||||
for the new focus.
|
||||
|
||||
- After this event client must assume that all keys, including modifiers,
|
||||
- are lifted and also it must stop key repeating if there's some going on.
|
||||
+ In the wl_keyboard logical state, this event resets all values to their
|
||||
+ defaults. The compositor must not send this event if the active surface
|
||||
+ of the wl_keyboard was not equal to the surface argument immediately
|
||||
+ before this event.
|
||||
</description>
|
||||
<arg name="serial" type="uint" summary="serial number of the leave event"/>
|
||||
<arg name="surface" type="object" interface="wl_surface" summary="surface that lost keyboard focus"/>
|
||||
@@ -2448,6 +2521,15 @@
|
||||
|
||||
If this event produces a change in modifiers, then the resulting
|
||||
wl_keyboard.modifiers event must be sent after this event.
|
||||
+
|
||||
+ In the wl_keyboard logical state, this event adds the key to the keys
|
||||
+ currently logically down (if the state argument is pressed) or removes
|
||||
+ the key from the keys currently logically down (if the state argument is
|
||||
+ released). The compositor must not send this event if the wl_keyboard
|
||||
+ did not have an active surface immediately before this event. The
|
||||
+ compositor must not send this event if state is pressed (resp. released)
|
||||
+ and the key was already logically down (resp. was not logically down)
|
||||
+ immediately before this event.
|
||||
</description>
|
||||
<arg name="serial" type="uint" summary="serial number of the key event"/>
|
||||
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
||||
@@ -2459,6 +2541,17 @@
|
||||
<description summary="modifier and group state">
|
||||
Notifies clients that the modifier and/or group state has
|
||||
changed, and it should update its local state.
|
||||
+
|
||||
+ The compositor may send this event without a surface of the client
|
||||
+ having keyboard focus, for example to tie modifier information to
|
||||
+ pointer focus instead. If a modifier event with pressed modifiers is sent
|
||||
+ without a prior enter event, the client can assume the modifier state is
|
||||
+ valid until it receives the next wl_keyboard.modifiers event. In order to
|
||||
+ reset the modifier state again, the compositor can send a
|
||||
+ wl_keyboard.modifiers event with no pressed modifiers.
|
||||
+
|
||||
+ In the wl_keyboard logical state, this event updates the modifiers and
|
||||
+ group.
|
||||
</description>
|
||||
<arg name="serial" type="uint" summary="serial number of the modifiers event"/>
|
||||
<arg name="mods_depressed" type="uint" summary="depressed modifiers"/>
|
||||
@@ -2566,6 +2659,8 @@
|
||||
currently active on this client's surface. The client is
|
||||
responsible for finalizing the touch points, future touch points on
|
||||
this surface may reuse the touch point ID.
|
||||
+
|
||||
+ No frame event is required after the cancel event.
|
||||
</description>
|
||||
</event>
|
||||
|
||||
@@ -2665,10 +2760,9 @@
|
||||
</enum>
|
||||
|
||||
<enum name="transform">
|
||||
- <description summary="transform from framebuffer to output">
|
||||
- This describes the transform that a compositor will apply to a
|
||||
- surface to compensate for the rotation or mirroring of an
|
||||
- output device.
|
||||
+ <description summary="transformation applied to buffer contents">
|
||||
+ This describes transformations that clients and compositors apply to
|
||||
+ buffer contents.
|
||||
|
||||
The flipped values correspond to an initial flip around a
|
||||
vertical axis followed by rotation.
|
||||
@@ -2700,6 +2794,10 @@
|
||||
The geometry event will be followed by a done event (starting from
|
||||
version 2).
|
||||
|
||||
+ Clients should use wl_surface.preferred_buffer_transform instead of the
|
||||
+ transform advertised by this event to find the preferred buffer
|
||||
+ transform to use for a surface.
|
||||
+
|
||||
Note: wl_output only advertises partial information about the output
|
||||
position and identification. Some compositors, for instance those not
|
||||
implementing a desktop-style output layout or those exposing virtual
|
||||
@@ -2722,7 +2820,7 @@
|
||||
<arg name="model" type="string"
|
||||
summary="textual description of the model"/>
|
||||
<arg name="transform" type="int" enum="transform"
|
||||
- summary="transform that maps framebuffer to output"/>
|
||||
+ summary="additional transformation applied to buffer contents during presentation"/>
|
||||
</event>
|
||||
|
||||
<enum name="mode" bitfield="true">
|
||||
@@ -2795,8 +2893,9 @@
|
||||
This event contains scaling geometry information
|
||||
that is not in the geometry event. It may be sent after
|
||||
binding the output object or if the output scale changes
|
||||
- later. If it is not sent, the client should assume a
|
||||
- scale of 1.
|
||||
+ later. The compositor will emit a non-zero, positive
|
||||
+ value for scale. If it is not sent, the client should
|
||||
+ assume a scale of 1.
|
||||
|
||||
A scale larger than 1 means that the compositor will
|
||||
automatically scale surface buffers by this amount
|
||||
@@ -2804,12 +2903,9 @@
|
||||
displays where applications rendering at the native
|
||||
resolution would be too small to be legible.
|
||||
|
||||
- It is intended that scaling aware clients track the
|
||||
- current output of a surface, and if it is on a scaled
|
||||
- output it should use wl_surface.set_buffer_scale with
|
||||
- the scale of the output. That way the compositor can
|
||||
- avoid scaling the surface, and the client can supply
|
||||
- a higher detail image.
|
||||
+ Clients should use wl_surface.preferred_buffer_scale
|
||||
+ instead of this event to find the preferred buffer
|
||||
+ scale to use for a surface.
|
||||
|
||||
The scale event will be followed by a done event.
|
||||
</description>
|
||||
@@ -3035,6 +3131,11 @@
|
||||
|
||||
If the parent wl_surface object is destroyed, the sub-surface is
|
||||
unmapped.
|
||||
+
|
||||
+ A sub-surface never has the keyboard focus of any seat.
|
||||
+
|
||||
+ The wl_surface.offset request is ignored: clients must use set_position
|
||||
+ instead to move the sub-surface.
|
||||
</description>
|
||||
|
||||
<request name="destroy" type="destructor">
|
||||
@@ -3060,9 +3161,7 @@
|
||||
surface area. Negative values are allowed.
|
||||
|
||||
The scheduled coordinates will take effect whenever the state of the
|
||||
- parent surface is applied. When this happens depends on whether the
|
||||
- parent surface is in synchronized mode or not. See
|
||||
- wl_subsurface.set_sync and wl_subsurface.set_desync for details.
|
||||
+ parent surface is applied.
|
||||
|
||||
If more than one set_position request is invoked by the client before
|
||||
the commit of the parent surface, the position of a new request always
|
||||
@@ -3085,9 +3184,7 @@
|
||||
The z-order is double-buffered. Requests are handled in order and
|
||||
applied immediately to a pending state. The final pending state is
|
||||
copied to the active state the next time the state of the parent
|
||||
- surface is applied. When this happens depends on whether the parent
|
||||
- surface is in synchronized mode or not. See wl_subsurface.set_sync and
|
||||
- wl_subsurface.set_desync for details.
|
||||
+ surface is applied.
|
||||
|
||||
A new sub-surface is initially added as the top-most in the stack
|
||||
of its siblings and parent.
|
@ -0,0 +1,86 @@
|
||||
From be646fd42892d6e59a573a0a188c5ae193d2be83 Mon Sep 17 00:00:00 2001
|
||||
From: David Edmundson <davidedmundson@kde.org>
|
||||
Date: Fri, 5 Jul 2024 16:13:40 +0100
|
||||
Subject: [PATCH 2/2] Client: Improve thread safety determining window size on
|
||||
the render thread
|
||||
|
||||
updateSurface is called from both the render and GUI thread. We
|
||||
therefore need every property referenced to be thread safe.
|
||||
|
||||
Rather than guarding each property we cache the buffer size whenever the
|
||||
window geometry or scale changes and put a mutex round this one
|
||||
variable.
|
||||
|
||||
Change-Id: I4168ced27556e0e4558bbdbd1daa275d7523c33d
|
||||
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||
(cherry picked from commit 83da29c62f8fb918df8d91826d16b5d5ceb2c704)
|
||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||
(cherry picked from commit f817608c7152487f489d0f3a227c1d0ceb7b0c2c)
|
||||
---
|
||||
.../client/wayland-egl/qwaylandeglwindow.cpp | 20 +++++++++++++++----
|
||||
.../client/wayland-egl/qwaylandeglwindow_p.h | 6 ++++++
|
||||
2 files changed, 22 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||
index e6258893..d020f4db 100644
|
||||
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||
@@ -50,6 +50,15 @@ QWaylandWindow::WindowType QWaylandEglWindow::windowType() const
|
||||
|
||||
void QWaylandEglWindow::ensureSize()
|
||||
{
|
||||
+ // this is always called on the main thread
|
||||
+ QMargins margins = mWindowDecoration ? frameMargins() : QMargins{};
|
||||
+ QRect rect = geometry();
|
||||
+ QSize sizeWithMargins = (rect.size() + QSize(margins.left() + margins.right(), margins.top() + margins.bottom())) * scale();
|
||||
+ {
|
||||
+ QWriteLocker lock(&m_bufferSizeLock);
|
||||
+ m_bufferSize = sizeWithMargins;
|
||||
+ }
|
||||
+
|
||||
updateSurface(false);
|
||||
}
|
||||
|
||||
@@ -60,14 +69,17 @@ void QWaylandEglWindow::setGeometry(const QRect &rect)
|
||||
// we're now getting a resize we don't want to create it again.
|
||||
// Just resize the wl_egl_window, the EGLSurface will be created
|
||||
// the next time makeCurrent is called.
|
||||
- updateSurface(false);
|
||||
+ ensureSize();
|
||||
}
|
||||
|
||||
void QWaylandEglWindow::updateSurface(bool create)
|
||||
{
|
||||
- QMargins margins = mWindowDecoration ? frameMargins() : QMargins{};
|
||||
- QRect rect = geometry();
|
||||
- QSize sizeWithMargins = (rect.size() + QSize(margins.left() + margins.right(), margins.top() + margins.bottom())) * scale();
|
||||
+
|
||||
+ QSize sizeWithMargins;
|
||||
+ {
|
||||
+ QReadLocker lock(&m_bufferSizeLock);
|
||||
+ sizeWithMargins = m_bufferSize;
|
||||
+ }
|
||||
|
||||
// wl_egl_windows must have both width and height > 0
|
||||
// mesa's egl returns NULL if we try to create a, invalid wl_egl_window, however not all EGL
|
||||
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h
|
||||
index 5b9aa987..048f0b61 100644
|
||||
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h
|
||||
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h
|
||||
@@ -60,7 +60,13 @@ private:
|
||||
mutable QOpenGLFramebufferObject *m_contentFBO = nullptr;
|
||||
|
||||
QSurfaceFormat m_format;
|
||||
+ // Size used in the last call to wl_egl_window_resize
|
||||
QSize m_requestedSize;
|
||||
+
|
||||
+ // Size of the buffer used by QWaylandWindow
|
||||
+ // This is always written to from the main thread, potentially read from the rendering thread
|
||||
+ QReadWriteLock m_bufferSizeLock;
|
||||
+ QSize m_bufferSize;
|
||||
};
|
||||
|
||||
}
|
||||
--
|
||||
2.45.2
|
||||
|
18
_constraints
Normal file
18
_constraints
Normal file
@ -0,0 +1,18 @@
|
||||
<constraints>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">5</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
<!-- relax constraints for qt6-wayland:docs -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<package>qt6-wayland:docs</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">2</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
4
_multibuild
Normal file
4
_multibuild
Normal file
@ -0,0 +1,4 @@
|
||||
<multibuild>
|
||||
<flavor>docs</flavor>
|
||||
</multibuild>
|
||||
|
38
fix-taskbar.patch
Normal file
38
fix-taskbar.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 79d38417c09f9ea74cc3eea9afafccaefe7dbf96 Mon Sep 17 00:00:00 2001
|
||||
From: David Redondo <qt@david-redondo.de>
|
||||
Date: Tue, 11 Feb 2025 10:36:39 +0100
|
||||
Subject: [PATCH] Use the same pointing device for releasing as all other events
|
||||
|
||||
When we specify no pointing device QWindowSystemInterface will use
|
||||
QPointingDevice::primaryPointingDevice() which is slightly different
|
||||
than what QWaylandWindow will do where the seat name is passed.
|
||||
Task: QTBUG-127821
|
||||
|
||||
Change-Id: I77bf7ce0c5b57c205d670923ba348bf6eeec2490
|
||||
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||
(cherry picked from commit 5a65f2a46fd98316927845dfa6d4cb329dd8defd)
|
||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||
(cherry picked from commit 73d687ac76f1e13d2e40d77f106f3ec7ac795a87)
|
||||
---
|
||||
|
||||
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
||||
index f435b95..bd5d5ae 100644
|
||||
--- a/src/client/qwaylandinputdevice.cpp
|
||||
+++ b/src/client/qwaylandinputdevice.cpp
|
||||
@@ -1139,10 +1139,12 @@
|
||||
} else if (mFrameData.event->type == QEvent::MouseButtonRelease) {
|
||||
// If the window has been destroyed, we still need to report an up event, but it can't
|
||||
// be handled by the destroyed window (obviously), so send the event here instead.
|
||||
- QWindowSystemInterface::handleMouseEvent(nullptr, event->timestamp, event->local,
|
||||
- event->global, event->buttons,
|
||||
- event->button, event->type,
|
||||
- event->modifiers);// , Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
|
||||
+ QWindowSystemInterface::handleMouseEvent(
|
||||
+ nullptr, event->timestamp,
|
||||
+ QPointingDevice::primaryPointingDevice(mParent->seatname()), event->local,
|
||||
+ event->global, event->buttons, event->button, event->type,
|
||||
+ event->modifiers); // , Qt::MouseEventSource source =
|
||||
+ // Qt::MouseEventNotSynthesized);
|
||||
}
|
||||
delete mFrameData.event;
|
||||
mFrameData.event = nullptr;
|
5
qt6-wayland-rpmlintrc
Normal file
5
qt6-wayland-rpmlintrc
Normal file
@ -0,0 +1,5 @@
|
||||
# using fdupes on include directories means looking for troubles
|
||||
addFilter("files-duplicate .*")
|
||||
|
||||
# library and development package names don't match
|
||||
addFilter("no-dependency-on .*")
|
396
qt6-wayland.changes
Normal file
396
qt6-wayland.changes
Normal file
@ -0,0 +1,396 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 9 22:50:26 UTC 2025 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Ignore private QML imports
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 28 17:12:04 UTC 2025 - pallas wept <pallaswept@proton.me>
|
||||
|
||||
- Add patch to fix failures when drag'n'drop in the task manager
|
||||
* fix-taskbar.patch
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 31 10:23:02 UTC 2025 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.8.2
|
||||
https://www.qt.io/blog/qt-6.8.2-released
|
||||
- Drop patches, merged upstream:
|
||||
* 0001-fix-crash-issue.patch
|
||||
* 0001-client-Redo-management-of-tablet-object-proxies.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 2 13:02:16 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.8.1:
|
||||
* https://www.qt.io/blog/qt-6.8.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 28 16:18:57 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Add patch to fix crash when unplugging a graphics tablet:
|
||||
* 0001-client-Redo-management-of-tablet-object-proxies.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 8 14:10:37 UTC 2024 - Hillwood Yang <hillwood@opensuse.org>
|
||||
|
||||
- Add 0001-fix-crash-issue.patch
|
||||
fix crash when attach differ shellsurface to the same shellsurfaceitem (boo#1233141)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 8 09:29:56 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.8.0:
|
||||
* https://www.qt.io/blog/qt-6.8-released
|
||||
- Rebase 0001-update-wayland_xml-to-version-1_23_0.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 28 08:23:11 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.7.3
|
||||
* https://www.qt.io/blog/qt-6.7.3-released
|
||||
- Drop patches, merged upstream:
|
||||
* 0001-Client-Ensure-that-guessed-popup-parent-has-a-shell-.patch
|
||||
* 0001-client-Guard-against-windows-being-on-a-null-screen.patch
|
||||
* 0002-Client-Improve-thread-safety-determining-window-size.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 28 08:36:28 UTC 2024 - Hillwood Yang <hillwood@opensuse.org>
|
||||
|
||||
- Add patch to fix 'wl_shm' higher than interface version (2 > 1)
|
||||
(boo#1229893, QTBUG-126379):
|
||||
* 0001-update-wayland_xml-to-version-1_23_0.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 16 09:02:13 UTC 2024 - Fabian Vogt <fvogt@suse.com>
|
||||
|
||||
- Add patches to fix crashes on screens disappearing
|
||||
(kde#489072, kde#489180):
|
||||
* 0001-client-Guard-against-windows-being-on-a-null-screen.patch
|
||||
* 0002-Client-Improve-thread-safety-determining-window-size.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 9 09:20:12 UTC 2024 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Add patch to fix certain wayland protocol errors (kde#489259):
|
||||
* 0001-Client-Ensure-that-guessed-popup-parent-has-a-shell-.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 19 07:26:06 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.7.2:
|
||||
* https://www.qt.io/blog/qt-6.7.2-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 21 08:31:51 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.7.1:
|
||||
* https://www.qt.io/blog/qt-6.7.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 2 13:40:03 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.7.0:
|
||||
* https://www.qt.io/blog/qt-6.7-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 26 14:27:07 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.6.3:
|
||||
* https://www.qt.io/blog/qt-6.6.3-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 14 16:53:37 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.6.2
|
||||
* https://www.qt.io/blog/qt-6.6.2-released
|
||||
- Drop patch, merged upstream:
|
||||
* client-avoid-creating-decorations-in-the-render-thread.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 7 13:49:26 UTC 2024 - Fusion Future <qydwhotmail@gmail.com>
|
||||
|
||||
- Add patch to fix a frequent crash (kde#479302)
|
||||
* client-avoid-creating-decorations-in-the-render-thread.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 27 14:00:21 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.6.1:
|
||||
* https://www.qt.io/blog/qt-6.6.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 10 09:40:03 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.6.0
|
||||
* https://www.qt.io/blog/qt-6.6-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 28 07:34:24 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.5.3
|
||||
* https://www.qt.io/blog/qt-6.5.3-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 20 09:07:25 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.5.2
|
||||
* https://www.qt.io/blog/qt-6.5.2-released-1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 30 15:13:17 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update subpackages requirements
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 24 07:45:46 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.5.1
|
||||
* https://www.qt.io/blog/qt-6.5.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 3 10:02:55 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.5.0
|
||||
* https://www.qt.io/blog/qt-6.5-lts-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 20 18:24:43 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Add a _constraints file to fix build issues
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 16 10:00:11 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.4.3:
|
||||
* https://www.qt.io/blog/qt-6.4.3-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 6 16:46:55 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update to 6.4.2:
|
||||
* https://www.qt.io/blog/qt-6.4.2-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 15 11:53:27 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.4.1:
|
||||
* https://www.qt.io/blog/qt-6.4.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 29 10:36:08 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.4.0:
|
||||
* https://www.qt.io/blog/qt-6.4-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 16 08:29:24 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.4.0 RC
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 9 12:41:50 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.3.2:
|
||||
* https://www.qt.io/blog/qt-6.3.2-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 17 15:15:43 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.3.1:
|
||||
* https://www.qt.io/blog/qt-6.3.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 8 11:57:03 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.3.0:
|
||||
* https://www.qt.io/blog/qt-6.3-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 29 12:28:43 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.3.0-rc
|
||||
- Drop patch, fixed upstream:
|
||||
* 0001-CMake-Fix-qtwayland-feature-detection.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 21 08:46:44 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.4
|
||||
* https://www.qt.io/blog/qt-6.2.4-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 4 13:21:07 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Add patch to fix features detection:
|
||||
* 0001-CMake-Fix-qtwayland-feature-detection.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 31 08:55:00 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.3:
|
||||
* https://www.qt.io/blog/qt-6.2.3-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 1 10:06:35 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.2
|
||||
* https://www.qt.io/blog/qt-6.2.2-released
|
||||
- Make sure all dependencies are present when installing devel
|
||||
packages. Qt >= 6.2.2 is much less permissive.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 26 11:23:02 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.1
|
||||
* https://www.qt.io/blog/qt-6.2.1-released
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 30 12:30:47 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.0:
|
||||
* https://www.qt.io/blog/qt-6.2-lts-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 25 07:18:45 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.0-rc2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 16 14:08:11 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.0-rc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 9 14:05:34 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.2.0-beta4
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 1 13:04:00 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.3:
|
||||
* https://www.qt.io/blog/qt-6.1.3-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 2 14:08:33 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.2. New bugfix release:
|
||||
* https://www.qt.io/blog/qt-6.1.2-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 8 05:54:22 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.1:
|
||||
* https://www.qt.io/blog/qt-6.1.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 6 17:10:46 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.0:
|
||||
* https://www.qt.io/blog/qt-6.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 23 14:11:45 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.0-rc.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 13 06:29:31 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.0-beta3.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 31 13:40:28 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.3
|
||||
* https://www.qt.io/blog/qt-6.0.3-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 19 15:35:01 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.0-beta2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 9 14:43:09 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.1.0-beta1
|
||||
https://www.qt.io/blog/qt-6.1-beta-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 9 13:40:23 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.2:
|
||||
https://www.qt.io/blog/qt-6.0.2-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 9 13:39:16 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.2:
|
||||
https://www.qt.io/blog/qt-6.0.2-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 3 17:34:22 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.1
|
||||
https://www.qt.io/blog/qt-6.0.1-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 30 16:00:55 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Move the QML files into a separate package.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 16 11:26:14 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Use a different 'Name' when building the docs flavor.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 8 14:09:42 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.0:
|
||||
* https://www.qt.io/blog/qt-6.0-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 8 14:08:24 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.0:
|
||||
* https://www.qt.io/blog/qt-6.0-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 2 12:09:06 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Qt 6.0.0 RC2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 25 14:25:35 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.0~rc1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 17 07:26:30 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.0~beta5
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 10 22:34:26 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.0~beta4.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 20 07:47:17 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.0beta1
|
||||
https://www.qt.io/blog/qt-6.0-beta-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 6 19:38:10 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Update to 6.0.0-alpha
|
||||
https://www.qt.io/blog/qt-6.0-alpha-released
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 1 18:11:29 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Add qt6-wayland.
|
403
qt6-wayland.spec
Normal file
403
qt6-wayland.spec
Normal file
@ -0,0 +1,403 @@
|
||||
#
|
||||
# spec file for package qt6-wayland
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define real_version 6.8.2
|
||||
%define short_version 6.8
|
||||
%define tar_name qtwayland-everywhere-src
|
||||
%define tar_suffix %{nil}
|
||||
#
|
||||
%global qt6_flavor @BUILD_FLAVOR@%{nil}
|
||||
%if "%{qt6_flavor}" == "docs"
|
||||
%define pkg_suffix -docs
|
||||
%endif
|
||||
#
|
||||
# Private QML imports
|
||||
%global __requires_exclude qt6qmlimport\\(io\\.qt\\.examples\\.1\\)
|
||||
#
|
||||
%ifnarch %{arm} aarch64
|
||||
%global with_opengl 1
|
||||
%endif
|
||||
Name: qt6-wayland%{?pkg_suffix}
|
||||
Version: 6.8.2
|
||||
Release: 0
|
||||
Summary: Qt 6 Wayland libraries and tools
|
||||
# The wayland compositor files are GPL-3.0-or-later
|
||||
License: GPL-3.0-or-later AND (GPL-2.0-only OR LGPL-3.0-only OR GPL-3.0-or-later)
|
||||
URL: https://www.qt.io
|
||||
Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
|
||||
Source99: qt6-wayland-rpmlintrc
|
||||
# PATCH-FIX-UPSTREAM
|
||||
Patch0: 0001-update-wayland_xml-to-version-1_23_0.patch
|
||||
# PATCH-FIX-UPSTREAM fix-taskbar.patch - Based on change number 623667 via KDE bug 491100
|
||||
Patch1: fix-taskbar.patch
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: qt6-core-private-devel
|
||||
BuildRequires: qt6-gui-private-devel
|
||||
BuildRequires: qt6-opengl-private-devel
|
||||
BuildRequires: qt6-platformsupport-private-devel
|
||||
BuildRequires: qt6-qml-private-devel
|
||||
BuildRequires: qt6-quick-private-devel
|
||||
BuildRequires: cmake(Qt6Core) = %{real_version}
|
||||
BuildRequires: cmake(Qt6Gui) = %{real_version}
|
||||
BuildRequires: cmake(Qt6OpenGL) = %{real_version}
|
||||
BuildRequires: cmake(Qt6Qml) = %{real_version}
|
||||
BuildRequires: cmake(Qt6Quick) = %{real_version}
|
||||
BuildRequires: cmake(Qt6Svg) = %{real_version}
|
||||
BuildRequires: pkgconfig(egl)
|
||||
BuildRequires: pkgconfig(wayland-client)
|
||||
BuildRequires: pkgconfig(wayland-cursor)
|
||||
BuildRequires: pkgconfig(wayland-egl)
|
||||
BuildRequires: pkgconfig(wayland-scanner)
|
||||
BuildRequires: pkgconfig(wayland-server) >= 1.15
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xcomposite)
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
%if "%{qt6_flavor}" == "docs"
|
||||
BuildRequires: qt6-tools
|
||||
%{qt6_doc_packages}
|
||||
%endif
|
||||
|
||||
%description
|
||||
The Qt6 Wayland libraries and tools.
|
||||
|
||||
%if !%{qt6_docs_flavor}
|
||||
|
||||
%package devel
|
||||
Summary: Qt6 Wayland development meta package
|
||||
Requires: cmake(Qt6WaylandClient) = %{real_version}
|
||||
Requires: cmake(Qt6WaylandCompositor) = %{real_version}
|
||||
# This package contains information on features enabled at build time
|
||||
Requires: cmake(Qt6WaylandGlobalPrivate) = %{real_version}
|
||||
|
||||
%description devel
|
||||
This meta-package requires all the qt6-wayland development packages.
|
||||
|
||||
%package private-devel
|
||||
Summary: Qt6 wayland unstable ABI meta package
|
||||
Requires: qt6-waylandclient-private-devel = %{version}
|
||||
Requires: qt6-waylandcompositor-private-devel = %{version}
|
||||
Requires: cmake(Qt6WaylandEglClientHwIntegrationPrivate) = %{real_version}
|
||||
Requires: cmake(Qt6WaylandEglCompositorHwIntegrationPrivate) = %{real_version}
|
||||
Requires: cmake(Qt6WlShellIntegrationPrivate) = %{real_version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description private-devel
|
||||
This meta-package requires all the qt6-wayland development packages that do not
|
||||
have any ABI or API guarantees.
|
||||
|
||||
%package imports
|
||||
Summary: Qt 6 Wayland QML files and plugins
|
||||
|
||||
%description imports
|
||||
QML files and plugins from the Qt 6 Wayland module
|
||||
|
||||
%package -n libQt6WaylandClient6
|
||||
Summary: Qt 6 WaylandClient library
|
||||
|
||||
%description -n libQt6WaylandClient6
|
||||
The Qt 6 WaylandClient library.
|
||||
|
||||
%package -n qt6-waylandclient-devel
|
||||
Summary: Development files for the Qt 6 WaylandClient library
|
||||
Requires: libQt6WaylandClient6 = %{version}
|
||||
# qtwaylandscanner is required
|
||||
Requires: qt6-wayland = %{version}
|
||||
Requires: cmake(Qt6Gui) = %{real_version}
|
||||
Requires: cmake(Qt6WaylandCompositor) = %{real_version}
|
||||
Requires: cmake(Qt6WaylandGlobalPrivate) = %{real_version}
|
||||
|
||||
%description -n qt6-waylandclient-devel
|
||||
Development files for the Qt6 WaylandClient library.
|
||||
|
||||
%package -n qt6-waylandclient-private-devel
|
||||
Summary: Non-ABI stable API for the Qt 6 WaylandClient library
|
||||
Requires: cmake(Qt6WaylandClient) = %{real_version}
|
||||
%requires_eq qt6-core-private-devel
|
||||
%requires_eq qt6-gui-private-devel
|
||||
|
||||
%description -n qt6-waylandclient-private-devel
|
||||
This package provides private headers of libQt6WaylandClient that do not have
|
||||
any ABI or API guarantees.
|
||||
|
||||
%package -n libQt6WaylandCompositor6
|
||||
Summary: Qt 6 WaylandCompositor library
|
||||
|
||||
%description -n libQt6WaylandCompositor6
|
||||
The Qt 6 WaylandCompositor library.
|
||||
|
||||
%package -n qt6-waylandcompositor-devel
|
||||
Summary: Development files for the Qt6 WaylandCompositor library
|
||||
Requires: libQt6WaylandCompositor6 = %{version}
|
||||
Requires: cmake(Qt6Gui) = %{real_version}
|
||||
Requires: cmake(Qt6OpenGL) = %{real_version}
|
||||
Requires: cmake(Qt6Qml) = %{real_version}
|
||||
Requires: cmake(Qt6Quick) = %{real_version}
|
||||
Requires: cmake(Qt6WaylandGlobalPrivate) = %{real_version}
|
||||
|
||||
%description -n qt6-waylandcompositor-devel
|
||||
Development files for the Qt6 WaylandCompositor library.
|
||||
|
||||
%package -n qt6-waylandcompositor-private-devel
|
||||
Summary: Non-ABI stable API for the Qt6 WaylandCompositor library
|
||||
Requires: cmake(Qt6WaylandCompositor) = %{real_version}
|
||||
%requires_eq qt6-core-private-devel
|
||||
%requires_eq qt6-gui-private-devel
|
||||
%requires_eq qt6-qml-private-devel
|
||||
%requires_eq qt6-quick-private-devel
|
||||
|
||||
%description -n qt6-waylandcompositor-private-devel
|
||||
This package provides private headers of libQt6WaylandCompositor that do not
|
||||
have any ABI or API guarantees.
|
||||
|
||||
%package -n qt6-waylandglobal-private-devel
|
||||
Summary: Collection of build features used by qt6-wayland libraries
|
||||
|
||||
%description -n qt6-waylandglobal-private-devel
|
||||
This package contains enabled features information shared by all the
|
||||
qt6-wayland libraries.
|
||||
|
||||
### Private only libraries ###
|
||||
|
||||
%package -n libQt6WaylandEglClientHwIntegration6
|
||||
Summary: Qt 6 WaylandEglClientHwIntegration library
|
||||
|
||||
%description -n libQt6WaylandEglClientHwIntegration6
|
||||
The Qt 6 WaylandEglClientHwIntegration library.
|
||||
This library does not have any ABI or API guarantees.
|
||||
|
||||
%package -n qt6-waylandeglclienthwintegration-private-devel
|
||||
Summary: Qt 6 WaylandEglClientHwIntegration library - Development files
|
||||
Requires: libQt6WaylandEglClientHwIntegration6 = %{version}
|
||||
Requires: qt6-waylandclient-private-devel = %{version}
|
||||
Requires: cmake(Qt6Gui) = %{real_version}
|
||||
%requires_eq qt6-opengl-private-devel
|
||||
|
||||
%description -n qt6-waylandeglclienthwintegration-private-devel
|
||||
Development files for the Qt 6 WaylandEglClientHwIntegration library.
|
||||
This library does not have any ABI or API guarantees.
|
||||
|
||||
%package -n libQt6WaylandEglCompositorHwIntegration6
|
||||
Summary: Qt 6 WaylandEglCompositorHwIntegration library
|
||||
|
||||
%description -n libQt6WaylandEglCompositorHwIntegration6
|
||||
The Qt 6 WaylandEglCompositorHwIntegration library.
|
||||
This library does not have any ABI or API guarantees.
|
||||
|
||||
%package -n qt6-waylandeglcompositorhwintegration-private-devel
|
||||
Summary: Qt 6 WaylandEglCompositorHwIntegration library - Development files
|
||||
Requires: libQt6WaylandEglCompositorHwIntegration6 = %{version}
|
||||
Requires: qt6-waylandcompositor-private-devel = %{version}
|
||||
Requires: cmake(Qt6Gui) = %{real_version}
|
||||
|
||||
%description -n qt6-waylandeglcompositorhwintegration-private-devel
|
||||
Development files for the Qt 6 WaylandEglCompositorHwIntegration library.
|
||||
This library does not have any ABI or API guarantees.
|
||||
|
||||
%package -n libQt6WlShellIntegration6
|
||||
Summary: Qt 6 WlShellIntegration library
|
||||
|
||||
%description -n libQt6WlShellIntegration6
|
||||
The Qt 6 WlShellIntegration library.
|
||||
This library does not have any ABI or API guarantees.
|
||||
|
||||
%package -n qt6-wlshellintegration-private-devel
|
||||
Summary: Qt 6 WlShellIntegration library - Development files
|
||||
Requires: libQt6WlShellIntegration6 = %{version}
|
||||
Requires: cmake(Qt6Gui) = %{real_version}
|
||||
Requires: cmake(Qt6WaylandClient) = %{real_version}
|
||||
|
||||
%description -n qt6-wlshellintegration-private-devel
|
||||
Development files for the Qt 6 WlShellIntegration library.
|
||||
This library does not have any ABI or API guarantees.
|
||||
|
||||
%{qt6_examples_package}
|
||||
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{tar_name}-%{real_version}%{tar_suffix}
|
||||
|
||||
# Empty file used for the meta packages
|
||||
cat >> meta_package << EOF
|
||||
This is a meta package, it does not contain any file
|
||||
EOF
|
||||
|
||||
%build
|
||||
%cmake_qt6 \
|
||||
-DQT_GENERATE_SBOM:BOOL=FALSE
|
||||
|
||||
%{qt6_build}
|
||||
|
||||
%install
|
||||
%{qt6_install}
|
||||
|
||||
%if !%{qt6_docs_flavor}
|
||||
|
||||
# .CMake files are not needed for plugins
|
||||
rm -r %{buildroot}%{_qt6_cmakedir}/Qt6Gui
|
||||
rm -r %{buildroot}%{_qt6_cmakedir}/Qt6Qml/QmlPlugins
|
||||
rm %{buildroot}%{_qt6_cmakedir}/*/*Plugin{Config,Targets}*.cmake
|
||||
|
||||
%ldconfig_scriptlets -n libQt6WaylandClient6
|
||||
%ldconfig_scriptlets -n libQt6WaylandCompositor6
|
||||
%ldconfig_scriptlets -n libQt6WaylandEglClientHwIntegration6
|
||||
%ldconfig_scriptlets -n libQt6WaylandEglCompositorHwIntegration6
|
||||
%ldconfig_scriptlets -n libQt6WlShellIntegration6
|
||||
|
||||
%files
|
||||
%license LICENSES/*
|
||||
%dir %{_qt6_pluginsdir}/platforms
|
||||
%{_qt6_libexecdir}/qtwaylandscanner
|
||||
%{_qt6_pluginsdir}/platforms/libqwayland-*.so
|
||||
%{_qt6_pluginsdir}/wayland-decoration-client/
|
||||
%{_qt6_pluginsdir}/wayland-graphics-integration-client/
|
||||
%{_qt6_pluginsdir}/wayland-graphics-integration-server/
|
||||
%{_qt6_pluginsdir}/wayland-shell-integration
|
||||
|
||||
%files devel
|
||||
%doc meta_package
|
||||
|
||||
%files private-devel
|
||||
%doc meta_package
|
||||
|
||||
%files imports
|
||||
%{_qt6_qmldir}/QtWayland/
|
||||
|
||||
%files -n libQt6WaylandClient6
|
||||
%{_qt6_libdir}/libQt6WaylandClient.so.*
|
||||
|
||||
%files -n qt6-waylandclient-devel
|
||||
%dir %{_qt6_cmakedir}/Qt6
|
||||
%{_qt6_cmakedir}/Qt6BuildInternals/StandaloneTests/QtWaylandTestsConfig.cmake
|
||||
%{_qt6_cmakedir}/Qt6/FindWaylandkms.cmake
|
||||
%{_qt6_cmakedir}/Qt6WaylandClient/
|
||||
%{_qt6_cmakedir}/Qt6WaylandScannerTools/
|
||||
%{_qt6_descriptionsdir}/WaylandClient.json
|
||||
%{_qt6_includedir}/QtWaylandClient
|
||||
%{_qt6_libdir}/libQt6WaylandClient.prl
|
||||
%{_qt6_libdir}/libQt6WaylandClient.so
|
||||
%{_qt6_metatypesdir}/qt6waylandclient_*_metatypes.json
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandclient.pri
|
||||
%{_qt6_pkgconfigdir}/Qt6WaylandClient.pc
|
||||
%exclude %{_qt6_includedir}/QtWaylandClient/%{real_version}
|
||||
|
||||
%files -n qt6-waylandclient-private-devel
|
||||
%{_qt6_includedir}/QtWaylandClient/%{real_version}/
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandclient_private.pri
|
||||
|
||||
%files -n libQt6WaylandCompositor6
|
||||
%{_qt6_libdir}/libQt6WaylandCompositor.so.*
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorIviapplication.so.*
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorPresentationTime.so.*
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorWLShell.so.*
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorXdgShell.so.*
|
||||
|
||||
%files -n qt6-waylandcompositor-devel
|
||||
%{_qt6_cmakedir}/Qt6WaylandCompositor/
|
||||
%{_qt6_cmakedir}/Qt6WaylandCompositorIviapplication/
|
||||
%{_qt6_cmakedir}/Qt6WaylandCompositorPresentationTime/
|
||||
%{_qt6_cmakedir}/Qt6WaylandCompositorWLShell/
|
||||
%{_qt6_cmakedir}/Qt6WaylandCompositorXdgShell/
|
||||
%{_qt6_descriptionsdir}/WaylandCompositor.json
|
||||
%{_qt6_descriptionsdir}/WaylandCompositorIviapplication.json
|
||||
%{_qt6_descriptionsdir}/WaylandCompositorPresentationTime.json
|
||||
%{_qt6_descriptionsdir}/WaylandCompositorWLShell.json
|
||||
%{_qt6_descriptionsdir}/WaylandCompositorXdgShell.json
|
||||
%{_qt6_includedir}/QtWaylandCompositor/
|
||||
%{_qt6_includedir}/QtWaylandCompositorIviapplication/
|
||||
%{_qt6_includedir}/QtWaylandCompositorPresentationTime/
|
||||
%{_qt6_includedir}/QtWaylandCompositorWLShell/
|
||||
%{_qt6_includedir}/QtWaylandCompositorXdgShell/
|
||||
%{_qt6_libdir}/libQt6WaylandCompositor.prl
|
||||
%{_qt6_libdir}/libQt6WaylandCompositor.so
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorIviapplication.prl
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorIviapplication.so
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorPresentationTime.prl
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorPresentationTime.so
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorWLShell.prl
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorWLShell.so
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorXdgShell.prl
|
||||
%{_qt6_libdir}/libQt6WaylandCompositorXdgShell.so
|
||||
%{_qt6_metatypesdir}/qt6waylandcompositor_*_metatypes.json
|
||||
%{_qt6_metatypesdir}/qt6waylandcompositoriviapplication_*_metatypes.json
|
||||
%{_qt6_metatypesdir}/qt6waylandcompositorpresentationtime_*_metatypes.json
|
||||
%{_qt6_metatypesdir}/qt6waylandcompositorwlshell_*_metatypes.json
|
||||
%{_qt6_metatypesdir}/qt6waylandcompositorxdgshell_*_metatypes.json
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandcompositor.pri
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandcompositoriviapplication*.pri
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandcompositorpresentationtime*.pri
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandcompositorwlshell*.pri
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandcompositorxdgshell*.pri
|
||||
%{_qt6_pkgconfigdir}/Qt6WaylandCompositor.pc
|
||||
%{_qt6_pkgconfigdir}/Qt6WaylandCompositorIviapplication.pc
|
||||
%{_qt6_pkgconfigdir}/Qt6WaylandCompositorPresentationTime.pc
|
||||
%{_qt6_pkgconfigdir}/Qt6WaylandCompositorWLShell.pc
|
||||
%{_qt6_pkgconfigdir}/Qt6WaylandCompositorXdgShell.pc
|
||||
%exclude %{_qt6_includedir}/QtWaylandCompositor/%{real_version}
|
||||
|
||||
%files -n qt6-waylandcompositor-private-devel
|
||||
%{_qt6_includedir}/QtWaylandCompositor/%{real_version}/
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandcompositor_private.pri
|
||||
|
||||
%files -n qt6-waylandglobal-private-devel
|
||||
%{_qt6_cmakedir}/Qt6WaylandGlobalPrivate/
|
||||
%{_qt6_descriptionsdir}/WaylandGlobalPrivate.json
|
||||
%{_qt6_includedir}/QtWaylandGlobal/
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_waylandglobal_private.pri
|
||||
|
||||
### Private only libraries ###
|
||||
|
||||
%files -n libQt6WaylandEglClientHwIntegration6
|
||||
%{_qt6_libdir}/libQt6WaylandEglClientHwIntegration.so.*
|
||||
|
||||
%files -n qt6-waylandeglclienthwintegration-private-devel
|
||||
%{_qt6_cmakedir}/Qt6WaylandEglClientHwIntegrationPrivate/
|
||||
%{_qt6_descriptionsdir}/WaylandEglClientHwIntegrationPrivate.json
|
||||
%{_qt6_includedir}/QtWaylandEglClientHwIntegration/
|
||||
%{_qt6_libdir}/libQt6WaylandEglClientHwIntegration.prl
|
||||
%{_qt6_libdir}/libQt6WaylandEglClientHwIntegration.so
|
||||
%{_qt6_metatypesdir}/qt6waylandeglclienthwintegrationprivate_*_metatypes.json
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_wayland_egl_client_hw_integration_private.pri
|
||||
|
||||
%files -n libQt6WaylandEglCompositorHwIntegration6
|
||||
%{_qt6_libdir}/libQt6WaylandEglCompositorHwIntegration.so.*
|
||||
|
||||
%files -n qt6-waylandeglcompositorhwintegration-private-devel
|
||||
%{_qt6_cmakedir}/Qt6WaylandEglCompositorHwIntegrationPrivate/
|
||||
%{_qt6_descriptionsdir}/WaylandEglCompositorHwIntegrationPrivate.json
|
||||
%{_qt6_includedir}/QtWaylandEglCompositorHwIntegration/
|
||||
%{_qt6_libdir}/libQt6WaylandEglCompositorHwIntegration.prl
|
||||
%{_qt6_libdir}/libQt6WaylandEglCompositorHwIntegration.so
|
||||
%{_qt6_metatypesdir}/qt6waylandeglcompositorhwintegrationprivate_*_metatypes.json
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_wayland_egl_compositor_hw_integration_private.pri
|
||||
|
||||
%files -n libQt6WlShellIntegration6
|
||||
%{_qt6_libdir}/libQt6WlShellIntegration.so.*
|
||||
|
||||
%files -n qt6-wlshellintegration-private-devel
|
||||
%{_qt6_cmakedir}/Qt6WlShellIntegrationPrivate/
|
||||
%{_qt6_descriptionsdir}/WlShellIntegrationPrivate.json
|
||||
%{_qt6_includedir}/QtWlShellIntegration/
|
||||
%{_qt6_libdir}/libQt6WlShellIntegration.prl
|
||||
%{_qt6_libdir}/libQt6WlShellIntegration.so
|
||||
%{_qt6_metatypesdir}/qt6wlshellintegrationprivate_*_metatypes.json
|
||||
%{_qt6_mkspecsdir}/modules/qt_lib_wl_shell_integration_private.pri
|
||||
|
||||
%endif
|
||||
|
||||
%changelog
|
BIN
qtwayland-everywhere-src-6.7.2.tar.xz
(Stored with Git LFS)
Normal file
BIN
qtwayland-everywhere-src-6.7.2.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
3
qtwayland-everywhere-src-6.7.3.tar.xz
Normal file
3
qtwayland-everywhere-src-6.7.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e326c7ceb628f503bfc20577d5d2df9690ee10db08eb940cb80c759a6972b2b5
|
||||
size 1123508
|
BIN
qtwayland-everywhere-src-6.8.1.tar.xz
(Stored with Git LFS)
Normal file
BIN
qtwayland-everywhere-src-6.8.1.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
qtwayland-everywhere-src-6.8.2.tar.xz
(Stored with Git LFS)
Normal file
BIN
qtwayland-everywhere-src-6.8.2.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user