From 0e18da8467136806d191f84c88aa7536453869e0 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Wed, 12 Jun 2024 23:28:52 +0200 Subject: [PATCH] foreign-toplevel: fixup output resource finding fixes #6457 --- src/protocols/ForeignToplevelWlr.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/protocols/ForeignToplevelWlr.cpp b/src/protocols/ForeignToplevelWlr.cpp index 8224f495a..14800393a 100644 --- a/src/protocols/ForeignToplevelWlr.cpp +++ b/src/protocols/ForeignToplevelWlr.cpp @@ -122,25 +122,19 @@ void CForeignToplevelHandleWlr::sendMonitor(CMonitor* pMonitor) { if (lastMonitorID == (int64_t)pMonitor->ID) return; - const auto CLIENT = resource->client(); - - struct wl_resource* outputResource; + const auto CLIENT = resource->client(); if (const auto PLASTMONITOR = g_pCompositor->getMonitorFromID(lastMonitorID); PLASTMONITOR) { - wl_resource_for_each(outputResource, &PLASTMONITOR->output->resources) { - if (wl_resource_get_client(outputResource) != CLIENT) - continue; + const auto OLDRESOURCE = PROTO::outputs.at(PLASTMONITOR->szName)->outputResourceFrom(CLIENT); - resource->sendOutputLeave(outputResource); - } + if (OLDRESOURCE) + resource->sendOutputLeave(OLDRESOURCE->getResource()->resource()); } - wl_resource_for_each(outputResource, &pMonitor->output->resources) { - if (wl_resource_get_client(outputResource) != CLIENT) - continue; + const auto NEWRESOURCE = PROTO::outputs.at(pMonitor->szName)->outputResourceFrom(CLIENT); - resource->sendOutputEnter(outputResource); - } + if (NEWRESOURCE) + resource->sendOutputEnter(NEWRESOURCE->getResource()->resource()); lastMonitorID = pMonitor->ID; }