summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2024-12-27 17:54:12 -0500
committerIonen Wolkens <ionen@gentoo.org>2025-01-06 17:48:49 -0500
commit3c9de2bcae60f30fa39f60e51e278a4e511b8371 (patch)
tree82224520bc7be41e96d14e7c90357836fb07f3a7 /dev-qt/qtwayland/files
parentdev-qt/qtvirtualkeyboard: drop 6.7.2, 6.7.3 (diff)
downloadgentoo-3c9de2bcae60f30fa39f60e51e278a4e511b8371.tar.gz
gentoo-3c9de2bcae60f30fa39f60e51e278a4e511b8371.tar.bz2
gentoo-3c9de2bcae60f30fa39f60e51e278a4e511b8371.zip
dev-qt/qtwayland: drop 6.7.2-r3, 6.7.3-r1
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt/qtwayland/files')
-rw-r--r--dev-qt/qtwayland/files/qtwayland-6.7.2-drag-drop.patch67
-rw-r--r--dev-qt/qtwayland/files/qtwayland-6.7.2-null-screen.patch29
-rw-r--r--dev-qt/qtwayland/files/qtwayland-6.7.2-plasma-popup.patch25
-rw-r--r--dev-qt/qtwayland/files/qtwayland-6.7.2-thread-safety.patch65
-rw-r--r--dev-qt/qtwayland/files/qtwayland-6.7.3-wayland.xml-1.23.0.patch262
5 files changed, 0 insertions, 448 deletions
diff --git a/dev-qt/qtwayland/files/qtwayland-6.7.2-drag-drop.patch b/dev-qt/qtwayland/files/qtwayland-6.7.2-drag-drop.patch
deleted file mode 100644
index 6141d95cb834..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-6.7.2-drag-drop.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Backport from upcoming 6.7.3[1][2] for [3][4].
-
-[1] https://github.com/qt/qtwayland/commit/85ec3ae70b905ddf9e16d86c468446d74867743f
-[2] https://codereview.qt-project.org/c/qt/qtwayland/+/565408
-[3] https://bugs.kde.org/show_bug.cgi?id=482770
-[4] https://bugs.kde.org/show_bug.cgi?id=490059
-
-From: =?UTF-8?q?Niccol=C3=B2=20Venerandi?= <niccolo@venerandi.com>
-Date: Mon, 3 Jun 2024 12:19:59 +0200
-Subject: [PATCH] Emit a LeaveEvent on drag and drop start
-
-All focused windows will now receive a LeaveEvent when a drag and drop starts.
-This makes sure that the dragged element does not preserve any hover decoration
-during the drag and drop, and that other elements that happen to take place
-of the dragged elements don't become hovered too.
---- a/src/client/qwaylanddnd.cpp
-+++ b/src/client/qwaylanddnd.cpp
-@@ -29,4 +29,9 @@
- void QWaylandDrag::startDrag()
- {
-+ // Some compositors do not send a pointer leave before starting a drag, some do.
-+ // This is discussed upstream at: https://gitlab.freedesktop.org/wayland/wayland/-/issues/444
-+ // For consistency between compositors we emit the leave event here, upon drag start.
-+ m_display->currentInputDevice()->handleStartDrag();
-+
- QBasicDrag::startDrag();
- QWaylandWindow *icon = static_cast<QWaylandWindow *>(shapedPixmapWindow()->handle());
---- a/src/client/qwaylandinputdevice.cpp
-+++ b/src/client/qwaylandinputdevice.cpp
-@@ -524,4 +524,10 @@
- }
-
-+void QWaylandInputDevice::handleStartDrag()
-+{
-+ if (mPointer)
-+ mPointer->leavePointers();
-+}
-+
- #if QT_CONFIG(wayland_datadevice)
- void QWaylandInputDevice::setDataDevice(QWaylandDataDevice *device)
-@@ -880,4 +886,12 @@
- window->handleMouse(mParent, e);
- }
-+}
-+
-+void QWaylandInputDevice::Pointer::leavePointers()
-+{
-+ if (auto *window = focusWindow()) {
-+ LeaveEvent e(focusWindow(), mSurfacePos, mGlobalPos);
-+ window->handleMouse(mParent, e);
-+ }
- }
-
---- a/src/client/qwaylandinputdevice_p.h
-+++ b/src/client/qwaylandinputdevice_p.h
-@@ -93,4 +93,5 @@
- void setCursor(const QCursor *cursor, const QSharedPointer<QWaylandBuffer> &cachedBuffer = {}, int fallbackOutputScale = 1);
- #endif
-+ void handleStartDrag();
- void handleEndDrag();
-
-@@ -321,4 +322,5 @@
- public:
- void releaseButtons();
-+ void leavePointers();
-
- QWaylandInputDevice *mParent = nullptr;
diff --git a/dev-qt/qtwayland/files/qtwayland-6.7.2-null-screen.patch b/dev-qt/qtwayland/files/qtwayland-6.7.2-null-screen.patch
deleted file mode 100644
index 6a7e85a8f4b6..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-6.7.2-null-screen.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Backport of [1] for [2], will be fixed in qtwayland-6.7.3.
-
-[1] https://codereview.qt-project.org/c/qt/qtwayland/+/576718
-[2] https://bugs.kde.org/show_bug.cgi?id=489072
-
-From: David Edmundson <davidedmundson@kde.org>
-Date: Wed, 10 Jul 2024 09:00:33 +0100
-Subject: [PATCH] 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.
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -1406,5 +1406,5 @@
- QPlatformScreen *newScreen = calculateScreenFromSurfaceEvents();
-
-- if (newScreen->screen() == window()->screen())
-+ if (!newScreen || newScreen->screen() == window()->screen())
- return;
-
diff --git a/dev-qt/qtwayland/files/qtwayland-6.7.2-plasma-popup.patch b/dev-qt/qtwayland/files/qtwayland-6.7.2-plasma-popup.patch
deleted file mode 100644
index 25c7918a5a8b..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-6.7.2-plasma-popup.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Fixed in qtwayland-6.7.3
-
-https://mail.kde.org/pipermail/distributions/2024-July/001512.html
-https://invent.kde.org/qt/qt/qtwayland/-/commit/92bcb8f6b7a852c7a5d662fc34de561692a7a454
-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.
---- 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;
- }
diff --git a/dev-qt/qtwayland/files/qtwayland-6.7.2-thread-safety.patch b/dev-qt/qtwayland/files/qtwayland-6.7.2-thread-safety.patch
deleted file mode 100644
index 92be3b81d5b0..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-6.7.2-thread-safety.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Backport from 6.8 branch which should later land in 6.7.3 in [1] for [2].
-
-[1] https://codereview.qt-project.org/c/qt/qtwayland/+/574983
-[2] https://bugs.kde.org/show_bug.cgi?id=489180
-
-From: David Edmundson <davidedmundson@kde.org>
-Date: Fri, 05 Jul 2024 16:13:40 +0100
-Subject: [PATCH] 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.
---- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
-+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
-@@ -51,4 +51,13 @@
- 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);
- }
-@@ -61,12 +70,15 @@
- // 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
---- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h
-+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h
-@@ -61,5 +61,11 @@
-
- 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;
- };
-
diff --git a/dev-qt/qtwayland/files/qtwayland-6.7.3-wayland.xml-1.23.0.patch b/dev-qt/qtwayland/files/qtwayland-6.7.3-wayland.xml-1.23.0.patch
deleted file mode 100644
index a93132ec0936..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-6.7.3-wayland.xml-1.23.0.patch
+++ /dev/null
@@ -1,262 +0,0 @@
-Not essential to backport the update, but KDE upstream recommends
-it to avoid warnings.
-
-https://codereview.qt-project.org/c/qt/qtwayland/+/574283
---- a/src/3rdparty/protocol/wayland.xml
-+++ b/src/3rdparty/protocol/wayland.xml
-@@ -49 +49 @@
-- The callback_data passed in the callback is the event serial.
-+ The callback_data passed in the callback is undefined and should be ignored.
-@@ -215 +215 @@
-- <interface name="wl_shm_pool" version="1">
-+ <interface name="wl_shm_pool" version="2">
-@@ -265,5 +265,5 @@
-- 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.
-@@ -275 +275 @@
-- <interface name="wl_shm" version="1">
-+ <interface name="wl_shm" version="2">
-@@ -421,0 +422,15 @@
-+ <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"/>
-@@ -444,0 +460,11 @@
-+
-+ <!-- 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>
-@@ -456,3 +482,5 @@
-- 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.
-@@ -849,0 +878 @@
-+ <entry name="used_source" value="1" summary="source has already been used"/>
-@@ -871 +900 @@
-- hotspot, but subsequent wl_surface.attach request can move the
-+ hotspot, but subsequent wl_surface.offset requests can move the
-@@ -878,0 +908,4 @@
-+
-+ 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.
-@@ -891,0 +925,4 @@
-+
-+ 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.
-@@ -1414 +1451 @@
-- summary="surface was destroyed before its role object"/>
-+ summary="surface was destroyed before its role object"/>
-@@ -1443,3 +1480,3 @@
-- '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.
-@@ -1481,0 +1519,7 @@
-+
-+ 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.
-@@ -1621,10 +1665,12 @@
-- 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.
--
-- 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.
-+ as opposed to the active state in use by the compositor.
-+
-+ 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.
-@@ -1669,4 +1715,6 @@
-- 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.
-@@ -1728 +1776 @@
-- If scale is not positive the invalid_scale protocol error is
-+ If scale is not greater than 0 the invalid_scale protocol error is
-@@ -1732 +1780 @@
-- summary="positive scale for interpreting buffer contents"/>
-+ summary="scale for interpreting buffer contents"/>
-@@ -1804,0 +1853,3 @@
-+ Before receiving this event the preferred buffer scale for this surface
-+ is 1.
-+
-@@ -1808,0 +1860,2 @@
-+
-+ The compositor shall emit a scale value greater than 0.
-@@ -1818,3 +1871,6 @@
-- 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.
-@@ -1995 +2051 @@
-- On surface.attach requests to the pointer surface, hotspot_x
-+ On wl_surface.offset requests to the pointer surface, hotspot_x
-@@ -1997 +2053 @@
-- passed to the request. Attach must be confirmed by
-+ passed to the request. The offset must be applied by
-@@ -2251 +2307 @@
-- <event name="axis_discrete" since="5">
-+ <event name="axis_discrete" since="5" deprecated-since="8">
-@@ -2376,0 +2433,10 @@
-+
-+ 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.
-@@ -2410,0 +2477,5 @@
-+
-+ 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.
-@@ -2414 +2485 @@
-- <arg name="keys" type="array" summary="the currently pressed keys"/>
-+ <arg name="keys" type="array" summary="the keys currently logically down"/>
-@@ -2425,2 +2496,4 @@
-- 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.
-@@ -2450,0 +2524,9 @@
-+
-+ 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.
-@@ -2461,0 +2544,11 @@
-+
-+ 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.
-@@ -2568,0 +2662,2 @@
-+
-+ No frame event is required after the cancel event.
-@@ -2668,4 +2763,3 @@
-- <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.
-@@ -2702,0 +2797,4 @@
-+ 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.
-+
-@@ -2725 +2823 @@
-- summary="transform that maps framebuffer to output"/>
-+ summary="additional transformation applied to buffer contents during presentation"/>
-@@ -2798,2 +2896,3 @@
-- 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.
-@@ -2807,6 +2906,3 @@
-- 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.
-@@ -3037,0 +3134,5 @@
-+
-+ 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.
-@@ -3063,3 +3164 @@
-- 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.
-@@ -3088,3 +3187 @@
-- 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.