cleanup: Revert use doLater instead of adding idle event handlers (#8624)

This reverts commit 6d7544458d.
This commit is contained in:
vaxerski 2024-12-03 21:15:25 +00:00
parent 320144ae72
commit f6ac755cf7
5 changed files with 39 additions and 32 deletions

View file

@ -2,7 +2,6 @@
#include "../devices/Tablet.hpp"
#include "../Compositor.hpp"
#include "../managers/SeatManager.hpp"
#include "../managers/eventLoop/EventLoopManager.hpp"
#include "core/Seat.hpp"
#include "core/Compositor.hpp"
#include <algorithm>
@ -163,6 +162,11 @@ CTabletToolV2Resource::CTabletToolV2Resource(SP<CZwpTabletToolV2> resource_, SP<
});
}
CTabletToolV2Resource::~CTabletToolV2Resource() {
if (frameSource)
wl_event_source_remove(frameSource);
}
bool CTabletToolV2Resource::good() {
return resource->resource();
}
@ -201,22 +205,20 @@ void CTabletToolV2Resource::sendData() {
}
void CTabletToolV2Resource::queueFrame() {
if (frameQueued)
if (frameSource)
return;
frameQueued = true;
g_pEventLoopManager->doLater([this]() {
if (!frameQueued || tool.expired() || inert)
return;
sendFrame();
});
frameSource = wl_event_loop_add_idle(g_pCompositor->m_sWLEventLoop, [](void* data) { ((CTabletToolV2Resource*)data)->sendFrame(false); }, this);
}
void CTabletToolV2Resource::sendFrame() {
frameQueued = false;
void CTabletToolV2Resource::sendFrame(bool removeSource) {
if (frameSource) {
if (removeSource)
wl_event_source_remove(frameSource);
frameSource = nullptr;
}
if (!current || !resource)
if (!current)
return;
timespec now;