From edac94bed14ab208d61f2867e5464ac576781c8b Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 31 Jul 2022 00:27:32 +0200 Subject: tick hyprctl separately --- src/Compositor.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/Compositor.cpp') diff --git a/src/Compositor.cpp b/src/Compositor.cpp index a82bbd1c..a4a322d8 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1,6 +1,7 @@ #include "Compositor.hpp" #include "helpers/Splashes.hpp" #include +#include "debug/HyprCtl.hpp" int handleCritSignal(int signo, void* data) { Debug::log(LOG, "Hyprland received signal %d", signo); @@ -1477,4 +1478,21 @@ CWindow* CCompositor::getWindowByRegex(const std::string& regexp) { } return nullptr; +} + +wl_event_source* hyprCtlTickSource = nullptr; + +int hyprCtlTick(void* data) { + HyprCtl::tickHyprCtl(); // so that we dont get that race condition multithread bullshit + + wl_event_source_timer_update(hyprCtlTickSource, 16); // tick it 60/s, should be enough. +} + +void CCompositor::startHyprCtlTick() { + if (hyprCtlTickSource) + return; + + hyprCtlTickSource = wl_event_loop_add_timer(m_sWLEventLoop, hyprCtlTick, nullptr); + + wl_event_source_timer_update(hyprCtlTickSource, 16); } \ No newline at end of file -- cgit v1.2.3