Split macOS player mode into window toggle + floating control

Replace the three-way macOS Player Mode picker (Separate Window /
Floating Window / Inline) with a single 'Play in a separate window'
toggle in Playback settings, and move the always-on-top choice to a
pin button in the player's top bar (window mode only).

Floating was really a transient window property (NSWindow.level), not
a peer of the window/inline structural choice — so it belongs on a live
control, not in Settings. The pin state persists across sessions.

- Replace MacPlayerMode enum with macPlayerSeparateWindow /
  macPlayerFloating bool settings
- Branch runtime presentation and window level off the two bools
- Add pin.fill/pin toggle to MacOSPlayerControlsView top bar
- Update localization; drop obsolete playerMode strings and enum tests
This commit is contained in:
Arkadiusz Fal
2026-05-30 12:42:18 +02:00
parent 64ca1c10d9
commit 2f2e436fe2
10 changed files with 85 additions and 129 deletions

View File

@@ -7234,6 +7234,17 @@
}
}
},
"player.controls.keepOnTop" : {
"comment" : "Toggles whether the player window floats above other windows",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Keep on Top"
}
}
}
},
"player.controls.pause" : {
"localizations" : {
"en" : {
@@ -12442,46 +12453,13 @@
}
}
},
"settings.playback.macOS.playerMode" : {
"comment" : "macOS player mode setting",
"settings.playback.macOS.separateWindow" : {
"comment" : "Toggle: play the expanded video in a separate window vs. an inline sheet",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Player Mode"
}
}
}
},
"settings.playback.macOS.playerMode.floatingWindow" : {
"comment" : "Floating window player mode - stays on top of other windows",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Floating Window"
}
}
}
},
"settings.playback.macOS.playerMode.inline" : {
"comment" : "Inline (sheet) player mode",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Inline (Sheet)"
}
}
}
},
"settings.playback.macOS.playerMode.window" : {
"comment" : "Separate window player mode",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Separate Window"
"value" : "Play in a separate window"
}
}
}