diff --git a/src/lib/platform/PortalInputCapture.cpp b/src/lib/platform/PortalInputCapture.cpp index 71631d5f2..16ed38566 100644 --- a/src/lib/platform/PortalInputCapture.cpp +++ b/src/lib/platform/PortalInputCapture.cpp @@ -207,8 +207,6 @@ PortalInputCapture::~PortalInputCapture() g_signal_handler_disconnect(m_session, m_signals.at(Activated)); g_signal_handler_disconnect(m_session, m_signals.at(Deactivated)); g_signal_handler_disconnect(m_session, m_signals.at(ZonesChanged)); - - g_signal_handler_disconnect(m_session, m_signals.at(SelectionOwnerChanged)); g_signal_handler_disconnect(m_session, m_signals.at(SelectionTransfer)); g_object_unref(m_session); } @@ -337,40 +335,6 @@ void PortalInputCapture::readClipboardSelection(XdpSession *session) #endif } -void PortalInputCapture::handleSelectionOwnerChanged(XdpSession *session, GStrv mimeTypes, gboolean isOwner) -{ -#ifdef HAVE_LIBPORTAL_CLIPBOARD - LOG_DEBUG( - "selection owner changed, session owns: %s, mime types: %s", isOwner ? "yes" : "no", - mimeTypes ? formatMimeTypes(const_cast(mimeTypes)).constData() : "(none)" - ); - - if (isOwner) { - LOG_DEBUG("ignoring selection owner change, session already owns the selection"); - return; - } - if (!mimeTypes) { - LOG_DEBUG("ignoring selection owner change, selection cleared"); - return; - } - - if (!pickSupportedMime(mimeTypes)) { - LOG_DEBUG("ignoring selection owner change, no supported mime types: %s", formatMimeTypes(mimeTypes).constData()); - return; - } - - m_screen->sendClipboardEvent(EventTypes::ClipboardGrabbed, kClipboardClipboard); - - if (!m_isActive) { - LOG_DEBUG("deferring clipboard read until input capture activates"); - m_pendingClipboardRead = true; - return; - } - - readClipboardSelection(session); -#endif -} - void PortalInputCapture::handleSelectionTransfer(XdpSession *session, const char *mimeType, uint32_t serial) { #ifdef HAVE_LIBPORTAL_CLIPBOARD @@ -488,8 +452,6 @@ void PortalInputCapture::setupSession(XdpInputCaptureSession *session) handleZonesChanged(session, nullptr); #ifdef HAVE_LIBPORTAL_CLIPBOARD - m_signals.at(SelectionOwnerChanged) = - g_signal_connect(G_OBJECT(parentSession), "selection-owner-changed", G_CALLBACK(selectionOwnerChanged), this); m_signals.at(SelectionTransfer) = g_signal_connect(G_OBJECT(parentSession), "selection-transfer", G_CALLBACK(selectionTransfer), this); #endif @@ -895,7 +857,6 @@ void PortalInputCapture::handleActivated( #ifdef HAVE_LIBPORTAL_CLIPBOARD if (m_session) { - m_pendingClipboardRead = false; LOG_DEBUG("reading clipboard selection on activation"); m_screen->sendClipboardEvent(EventTypes::ClipboardGrabbed, kClipboardClipboard); diff --git a/src/lib/platform/PortalInputCapture.h b/src/lib/platform/PortalInputCapture.h index ecd6984a8..bbde0a059 100644 --- a/src/lib/platform/PortalInputCapture.h +++ b/src/lib/platform/PortalInputCapture.h @@ -59,7 +59,6 @@ private: handleDeactivated(const XdpInputCaptureSession *session, const std::uint32_t activationId, const GVariant *options); void handleZonesChanged(XdpInputCaptureSession *session, const GVariant *options); - void handleSelectionOwnerChanged(XdpSession *session, GStrv mimeTypes, gboolean isOwner); void handleSelectionTransfer(XdpSession *session, const char *mimeType, uint32_t serial); void readClipboardSelection(XdpSession *session); void claimClipboardOwnership(XdpSession *session); @@ -112,10 +111,6 @@ private: { static_cast(data)->handleZonesChanged(session, options); } - static void selectionOwnerChanged(XdpSession *session, GStrv mimeTypes, gboolean isOwner, const gpointer data) - { - static_cast(data)->handleSelectionOwnerChanged(session, mimeTypes, isOwner); - } static void selectionTransfer(XdpSession *session, const char *mimeType, uint32_t serial, const gpointer data) { static_cast(data)->handleSelectionTransfer(session, mimeType, serial); @@ -131,7 +126,6 @@ private: ZonesChanged, // Clipboard signals - SelectionOwnerChanged, SelectionTransfer, }; @@ -188,15 +182,14 @@ private: XdpInputCaptureSession *m_session = nullptr; std::map m_signals = { - {Signal::SessionClosed, 0}, {Signal::Disabled, 0}, {Signal::Activated, 0}, - {Signal::Deactivated, 0}, {Signal::ZonesChanged, 0}, + {Signal::SessionClosed, 0}, {Signal::Disabled, 0}, {Signal::Activated, 0}, + {Signal::Deactivated, 0}, {Signal::ZonesChanged, 0}, - {Signal::SelectionOwnerChanged, 0}, {Signal::SelectionTransfer, 0}, + {Signal::SelectionTransfer, 0}, }; bool m_enabled = false; bool m_isActive = false; - bool m_pendingClipboardRead = false; std::uint32_t m_activationId = 0; std::vector m_barriers;