Skip to content

Commit

Permalink
Session: only dispatch udev in dispatchPendingEventsAsync if on linux (
Browse files Browse the repository at this point in the history
  • Loading branch information
vaxerski authored Sep 23, 2024
1 parent 752d0fb commit 8b72861
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 18 deletions.
3 changes: 3 additions & 0 deletions src/backend/Backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@ bool Aquamarine::CBackend::start() {
b->onReady();
}

if (session)
session->onReady();

sessionFDs = session ? session->pollFDs() : std::vector<Hyprutils::Memory::CSharedPointer<SPollFD>>{};

return true;
Expand Down
24 changes: 6 additions & 18 deletions src/backend/Session.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -264,24 +264,7 @@ static bool isDRMCard(const char* sysname) {
}

void Aquamarine::CSession::onReady() {
for (auto const& d : libinputDevices) {
if (d->keyboard)
backend->events.newKeyboard.emit(SP<IKeyboard>(d->keyboard));
if (d->mouse)
backend->events.newPointer.emit(SP<IPointer>(d->mouse));
if (d->touch)
backend->events.newTouch.emit(SP<ITouch>(d->touch));
if (d->switchy)
backend->events.newSwitch.emit(SP<ITouch>(d->touch));
if (d->tablet)
backend->events.newTablet.emit(SP<ITablet>(d->tablet));
if (d->tabletPad)
backend->events.newTabletPad.emit(SP<ITabletPad>(d->tabletPad));

for (auto const& t : d->tabletTools) {
backend->events.newTabletTool.emit(SP<ITabletTool>(t));
}
}
;
}

void Aquamarine::CSession::dispatchUdevEvents() {
Expand Down Expand Up @@ -377,7 +360,12 @@ void Aquamarine::CSession::dispatchLibseatEvents() {

void Aquamarine::CSession::dispatchPendingEventsAsync() {
dispatchLibseatEvents();

// only linux libudev allows us to asynchronously dispatch outstanding without blocking
#if defined(__linux__)
dispatchUdevEvents();
#endif

dispatchLibinputEvents();
}

Expand Down

0 comments on commit 8b72861

Please sign in to comment.