diff options
| author | Nihal Jere <nihal@nihaljere.xyz> | 2025-08-15 14:38:28 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-15 15:38:28 +0100 |
| commit | aaedce596ec27742ea8f00a20607913e8a3e83db (patch) | |
| tree | 1d464e90b678083b18c3a31a5ebccd3e89a87d56 /src/managers | |
| parent | 60d769a89908c29e19100059985db15a7b6bab6a (diff) | |
protocols: implement ext-data-control (#11323)
This protocol has superseded wlr-data-control
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/ProtocolManager.cpp | 3 | ||||
| -rw-r--r-- | src/managers/SeatManager.cpp | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp index 91691926..b70d3b7d 100644 --- a/src/managers/ProtocolManager.cpp +++ b/src/managers/ProtocolManager.cpp @@ -63,6 +63,7 @@ #include "../protocols/XDGTag.hpp" #include "../protocols/XDGBell.hpp" #include "../protocols/ExtWorkspace.hpp" +#include "../protocols/ExtDataDevice.hpp" #include "../helpers/Monitor.hpp" #include "../render/Renderer.hpp" @@ -190,6 +191,7 @@ CProtocolManager::CProtocolManager() { PROTO::xdgTag = makeUnique<CXDGToplevelTagProtocol>(&xdg_toplevel_tag_manager_v1_interface, 1, "XDGTag"); PROTO::xdgBell = makeUnique<CXDGSystemBellProtocol>(&xdg_system_bell_v1_interface, 1, "XDGBell"); PROTO::extWorkspace = makeUnique<CExtWorkspaceProtocol>(&ext_workspace_manager_v1_interface, 1, "ExtWorkspace"); + PROTO::extDataDevice = makeUnique<CExtDataDeviceProtocol>(&ext_data_control_manager_v1_interface, 1, "ExtDataDevice"); if (*PENABLECM) PROTO::colorManagement = makeUnique<CColorManagementProtocol>(&wp_color_manager_v1_interface, 1, "ColorManagement", *PDEBUGCM); @@ -292,6 +294,7 @@ CProtocolManager::~CProtocolManager() { PROTO::xdgTag.reset(); PROTO::xdgBell.reset(); PROTO::extWorkspace.reset(); + PROTO::extDataDevice.reset(); for (auto& [_, lease] : PROTO::lease) { lease.reset(); diff --git a/src/managers/SeatManager.cpp b/src/managers/SeatManager.cpp index 67752e2a..bc4f2dfc 100644 --- a/src/managers/SeatManager.cpp +++ b/src/managers/SeatManager.cpp @@ -2,6 +2,7 @@ #include "../protocols/core/Seat.hpp" #include "../protocols/core/DataDevice.hpp" #include "../protocols/DataDeviceWlr.hpp" +#include "../protocols/ExtDataDevice.hpp" #include "../protocols/PrimarySelection.hpp" #include "../protocols/core/Compositor.hpp" #include "../Compositor.hpp" @@ -578,6 +579,7 @@ void CSeatManager::setCurrentSelection(SP<IDataSource> source) { m_selection.destroySelection = source->m_events.destroy.listen([this] { setCurrentSelection(nullptr); }); PROTO::data->setSelection(source); PROTO::dataWlr->setSelection(source, false); + PROTO::extDataDevice->setSelection(source, false); } m_events.setSelection.emit(); @@ -603,6 +605,7 @@ void CSeatManager::setCurrentPrimarySelection(SP<IDataSource> source) { m_selection.destroyPrimarySelection = source->m_events.destroy.listen([this] { setCurrentPrimarySelection(nullptr); }); PROTO::primarySelection->setSelection(source); PROTO::dataWlr->setSelection(source, true); + PROTO::extDataDevice->setSelection(source, true); } m_events.setPrimarySelection.emit(); |
