Skip to content

Commit

Permalink
Wayland: Fix copying inside the app
Browse files Browse the repository at this point in the history
Fixes deadlock when copy/pasting in CopyQ (for example: item to editor
or search bar).

This relies on clipboard implementation in Qt.
  • Loading branch information
hluk committed Nov 11, 2024
1 parent 005dc01 commit 9583a8d
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 20 deletions.
20 changes: 1 addition & 19 deletions src/platform/x11/x11platformclipboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,26 +148,8 @@ void X11PlatformClipboard::setData(ClipboardMode mode, const QVariantMap &dataMa
if ( X11Info::isPlatformX11() ) {
// WORKAROUND: Avoid getting X11 warning "QXcbClipboard: SelectionRequest too old".
QCoreApplication::processEvents();
DummyClipboard::setData(mode, dataMap);
} else {
const auto data = createMimeData(dataMap);
const auto qmode = modeToQClipboardMode(mode);
WaylandClipboard::instance()->setMimeData(data, qmode);

// This makes pasting the clipboard work in own widgets.
const auto data2 = createMimeData(dataMap);
QGuiApplication::clipboard()->setMimeData(data2, qmode);
}
}

void X11PlatformClipboard::setRawData(ClipboardMode mode, QMimeData *mimeData)
{
if ( X11Info::isPlatformX11() ) {
DummyClipboard::setRawData(mode, mimeData);
} else {
const auto qmode = modeToQClipboardMode(mode);
WaylandClipboard::instance()->setMimeData(mimeData, qmode);
}
DummyClipboard::setData(mode, dataMap);
}

const QMimeData *X11PlatformClipboard::rawMimeData(ClipboardMode mode) const
Expand Down
1 change: 0 additions & 1 deletion src/platform/x11/x11platformclipboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ class X11PlatformClipboard final : public DummyClipboard
QVariantMap data(ClipboardMode mode, const QStringList &formats) const override;

void setData(ClipboardMode mode, const QVariantMap &dataMap) override;
void setRawData(ClipboardMode mode, QMimeData *mimeData) override;

bool isSelectionSupported() const override { return m_selectionSupported; }

Expand Down

0 comments on commit 9583a8d

Please sign in to comment.