fix: observe playback state to unhide native video surface

This commit is contained in:
2026-10-18 02:05:25 +02:00
parent 07243f0ed7
commit 3e782aff31
4 changed files with 16 additions and 1 deletions
+7
View File
@@ -285,8 +285,15 @@ def check_cli_instances(root, app, fixtures):
and state["position"] > 0 and state["hasVideo"] for state in states.values()),
"cold default CLI opens one actual player window")
first_pid = next(iter(first))
renderer = first[first_pid]["window"]
if (not renderer.get("rendererAttached") or renderer.get("rendererHidden")
or abs(renderer["rendererWidth"] - renderer["videoWidth"]) > 1
or abs(renderer["rendererHeight"] - renderer["videoHeight"]) > 1):
raise RuntimeError(f"playing renderer must fill its visible native surface: {renderer}")
opened = input_request(first_pid, 1, lambda state: state["showsQueue"]
and state["window"].get("videoOwnsMouse") is True
and state["window"].get("rendererAttached") is True
and state["window"].get("rendererHidden") is False
and abs(state["window"]["videoWidth"] - first[first_pid]["window"]["videoWidth"]) < 1,
"queue preserves video size and mouse target", action="queue", visible=True)
window = opened[first_pid]["window"]
+6
View File
@@ -122,6 +122,12 @@ private enum CLIInstanceCheck {
result["sidebarOwnsMouse"] = hit(NSPoint(x: surface.bounds.maxX + 130, y: surface.bounds.midY)) !== surface
result["videoWidth"] = surface.bounds.width
result["videoHeight"] = surface.bounds.height
if let video = PlayerModel.shared.videoView {
result["rendererWidth"] = video.bounds.width
result["rendererHeight"] = video.bounds.height
result["rendererAttached"] = video.superview === surface
result["rendererHidden"] = video.isHidden
}
result["surfaceMovesOnMouseDown"] = surface.mouseDownCanMoveWindow
let edges = [NSPoint(x: 1, y: content.bounds.midY),
NSPoint(x: content.bounds.maxX - 1, y: content.bounds.midY),