cleanup: Revert use doLater instead of adding idle event handlers (#8624)
This reverts commit 6d7544458d.
This commit is contained in:
parent
320144ae72
commit
f6ac755cf7
5 changed files with 39 additions and 32 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue