diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-11-03 21:02:12 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-11-03 21:02:12 +0000 |
| commit | 21ba8b363e94294c3af8ac535728d5ad27762d35 (patch) | |
| tree | f394e20999c7b939cdfc82f62ec9910629f19ff4 /src/protocols/FractionalScale.cpp | |
| parent | 9d2a5fb41752c0dcc8e863d7e98b541656584dd9 (diff) | |
fractional-scale: fix addon existence check
Diffstat (limited to 'src/protocols/FractionalScale.cpp')
| -rw-r--r-- | src/protocols/FractionalScale.cpp | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/protocols/FractionalScale.cpp b/src/protocols/FractionalScale.cpp index 19e60295..f284dd0d 100644 --- a/src/protocols/FractionalScale.cpp +++ b/src/protocols/FractionalScale.cpp @@ -76,26 +76,19 @@ static void handleAddonDestroy(wl_resource* resource) { void CFractionalScaleProtocolManager::getFractionalScale(wl_client* client, wl_resource* resource, uint32_t id, wl_resource* surface) { const auto PSURFACE = wlr_surface_from_resource(surface); + const auto PADDON = getAddonForSurface(PSURFACE); - if (addonExists(PSURFACE)) { + if (PADDON->pResource) { wl_resource_post_error(resource, WP_FRACTIONAL_SCALE_MANAGER_V1_ERROR_FRACTIONAL_SCALE_EXISTS, "Fractional scale exists."); return; } - const auto PADDON = getAddonForSurface(PSURFACE); - PADDON->pResource = wl_resource_create(client, &wp_fractional_scale_v1_interface, wl_resource_get_version(resource), id); wl_resource_set_implementation(PADDON->pResource, &fractionalScaleAddonImpl, PADDON, handleAddonDestroy); wp_fractional_scale_v1_send_preferred_scale(PADDON->pResource, (uint32_t)std::round(PADDON->preferredScale * 120.0)); } -bool CFractionalScaleProtocolManager::addonExists(wlr_surface* surface) { - const auto IT = std::find_if(m_vFractionalScaleAddons.begin(), m_vFractionalScaleAddons.end(), [&](const auto& other) { return other->pSurface == surface; }); - - return IT != m_vFractionalScaleAddons.end(); -} - SFractionalScaleAddon* CFractionalScaleProtocolManager::getAddonForSurface(wlr_surface* surface) { const auto IT = std::find_if(m_vFractionalScaleAddons.begin(), m_vFractionalScaleAddons.end(), [&](const auto& other) { return other->pSurface == surface; }); |
