mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-07-25 17:21:54 -07:00
buffer: don't use crazy listener::emit()
This commit is contained in:
@@ -29,12 +29,17 @@ bool IHLBuffer::locked() {
|
||||
|
||||
void IHLBuffer::onBackendRelease(const std::function<void()>& fn) {
|
||||
if (m_hlEvents.backendRelease) {
|
||||
m_hlEvents.backendRelease->emit(nullptr);
|
||||
if (m_backendReleaseQueuedFn)
|
||||
m_backendReleaseQueuedFn();
|
||||
Debug::log(LOG, "backendRelease emitted early");
|
||||
}
|
||||
|
||||
m_hlEvents.backendRelease = events.backendRelease.registerListener([this, fn](std::any) {
|
||||
fn();
|
||||
m_backendReleaseQueuedFn = fn;
|
||||
|
||||
m_hlEvents.backendRelease = events.backendRelease.registerListener([this](std::any) {
|
||||
if (m_backendReleaseQueuedFn)
|
||||
m_backendReleaseQueuedFn();
|
||||
m_backendReleaseQueuedFn = nullptr;
|
||||
m_hlEvents.backendRelease.reset();
|
||||
});
|
||||
}
|
||||
|
@@ -37,7 +37,9 @@ class IHLBuffer : public Aquamarine::IBuffer {
|
||||
} m_hlEvents;
|
||||
|
||||
private:
|
||||
int m_locks = 0;
|
||||
int m_locks = 0;
|
||||
|
||||
std::function<void()> m_backendReleaseQueuedFn;
|
||||
|
||||
friend class CHLBufferReference;
|
||||
};
|
||||
|
Reference in New Issue
Block a user