https://bugs.kde.org/show_bug.cgi?id=511736

David Edmundson <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REPORTED                    |RESOLVED
      Latest Commit|                            |https://invent.kde.org/fram
                   |                            |eworks/kguiaddons/-/commit/
                   |                            |b71af4e1afcf72b8c9da315dc8d
                   |                            |728db70d753c0
         Resolution|---                         |FIXED
            Version|                            |6.22
  Fixed/Implemented|                            |
                 In|                            |

--- Comment #5 from David Edmundson <[email protected]> ---
Git commit b71af4e1afcf72b8c9da315dc8d728db70d753c0 by David Edmundson, on
behalf of David Redondo.
Committed on 15/12/2025 at 10:16.
Pushed by davidedmundson into branch 'master'.

ksystemclipboard: Dispatch read events in another thread

WaylandClipboard wraps ext_data_control if an application tried to read
the clipboard using QClipboard whilst it owns the data control we would
deadlock.

This was previously being solved by trying to transfer mimedata to the
regular clipboard upon gaining focus. However this never worked
reliably and efforts to fix this only made it more complicated.

To solve the original deadlock all ext_data_control classes now live on
another thread which dispatches events on a separate queue. A recursive
mutex allows the main thread to read mimedata and no wayland events
which change the mimedata process until this is complete.
Related: bug 480448, bug 496029, bug 502831, bug 505281, bug 506467, bug
507792, bug 509065, bug 509689
FIXED-IN: 6.22

M  +116  -14   src/systemclipboard/waylandclipboard.cpp
M  +3    -0    src/systemclipboard/waylandclipboard_p.h

https://invent.kde.org/frameworks/kguiaddons/-/commit/b71af4e1afcf72b8c9da315dc8d728db70d753c0

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to