diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-06-12 23:28:52 +0200 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-06-12 23:28:52 +0200 |
| commit | 0e18da8467136806d191f84c88aa7536453869e0 (patch) | |
| tree | b1cfcad6004519d2c19b7a146c50a00faae118b9 /src/protocols/ForeignToplevelWlr.cpp | |
| parent | 18ee9ece9cec51daa75fbf765d9fa6b72ef898e5 (diff) | |
foreign-toplevel: fixup output resource finding
fixes #6457
Diffstat (limited to 'src/protocols/ForeignToplevelWlr.cpp')
| -rw-r--r-- | src/protocols/ForeignToplevelWlr.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/protocols/ForeignToplevelWlr.cpp b/src/protocols/ForeignToplevelWlr.cpp index 8224f495..14800393 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; } |
