Rebuild Displays around the canvas, and let the transaction keep color
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -112,6 +112,30 @@ ShellRoot {
|
||||
});
|
||||
}
|
||||
|
||||
// The extended record — vrr override, colour profile, bit depth, SDR
|
||||
// trim, mirroring — merged one field at a time, which is how every
|
||||
// control on the page changes it. Base64 for the reason restorePlan
|
||||
// documents above: `qs ipc call` splits JSON that looks like an array
|
||||
// of objects into one argument per object.
|
||||
function applyRecordFixture(output: string, patchB64: string): bool {
|
||||
return Displays.applyRecord(output, JSON.parse(Qt.atob(patchB64)));
|
||||
}
|
||||
|
||||
// matchesLayout as a pure function. The readback carve-outs — a
|
||||
// mirrored output's position, a framebuffer format Panama does not
|
||||
// recognise — are decisions about what NOT to assert, and proving them
|
||||
// through a compositor would mean owning a compositor that mirrors.
|
||||
function layoutMatch(monitorsB64: string, layoutB64: string): bool {
|
||||
return Displays.matchesLayout(JSON.parse(Qt.atob(monitorsB64)),
|
||||
JSON.parse(Qt.atob(layoutB64)));
|
||||
}
|
||||
|
||||
// A settings.json written before any of the new fields existed is the
|
||||
// common case on every machine that has this installed today.
|
||||
function persistedEntryValid(entryB64: string): bool {
|
||||
return Displays.isPersistedLayoutEntry(JSON.parse(Qt.atob(entryB64)));
|
||||
}
|
||||
|
||||
function expireApplyVerification(): void {
|
||||
Displays.verificationTimedOut();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user