windows: honor xdg_toplevel_set_fullscreen output hint (#8965)

Co-authored-by: Dardo D Kleiner <dardo.kleiner@nrl.navy.mil>
This commit is contained in:
Dardo D Kleiner
2025-01-09 17:38:38 -05:00
committed by GitHub
parent 9dc9366fc6
commit f9c37ca43b
5 changed files with 55 additions and 10 deletions

View File

@@ -5,6 +5,7 @@
#include "../managers/SeatManager.hpp"
#include "core/Seat.hpp"
#include "core/Compositor.hpp"
#include "protocols/core/Output.hpp"
#include <cstring>
#include <ranges>
@@ -191,9 +192,14 @@ CXDGToplevelResource::CXDGToplevelResource(SP<CXdgToplevel> resource_, SP<CXDGSu
});
resource->setSetFullscreen([this](CXdgToplevel* r, wl_resource* output) {
if (output)
if (const auto PM = CWLOutputResource::fromResource(output)->monitor; PM)
state.requestsFullscreenMonitor = PM->ID;
state.requestsFullscreen = true;
events.stateChanged.emit();
state.requestsFullscreen.reset();
state.requestsFullscreenMonitor.reset();
});
resource->setUnsetFullscreen([this](CXdgToplevel* r) {
@@ -205,7 +211,7 @@ CXDGToplevelResource::CXDGToplevelResource(SP<CXdgToplevel> resource_, SP<CXDGSu
resource->setSetMinimized([this](CXdgToplevel* r) {
state.requestsMinimize = true;
events.stateChanged.emit();
state.requestsFullscreen.reset();
state.requestsMinimize.reset();
});
resource->setSetParent([this](CXdgToplevel* r, wl_resource* parentR) {