mirror of
https://github.com/Lakr233/vphone-cli.git
synced 2026-04-05 13:09:06 +08:00
record: always capture the VM window (#149)
This commit is contained in:
@@ -128,6 +128,7 @@ class VPhoneAppDelegate: NSObject, NSApplicationDelegate {
|
||||
|
||||
let mc = VPhoneMenuController(keyHelper: keyHelper, control: control)
|
||||
mc.vm = vm
|
||||
mc.captureView = wc.captureView
|
||||
mc.onFilesPressed = { [weak fileWC, weak control] in
|
||||
guard let fileWC, let control else { return }
|
||||
fileWC.showWindow(control: control)
|
||||
|
||||
@@ -17,6 +17,7 @@ class VPhoneMenuController {
|
||||
var locationReplayStopItem: NSMenuItem?
|
||||
var screenRecorder: VPhoneScreenRecorder?
|
||||
var recordingItem: NSMenuItem?
|
||||
weak var captureView: VPhoneVirtualMachineView?
|
||||
|
||||
init(keyHelper: VPhoneKeyHelper, control: VPhoneControl) {
|
||||
self.keyHelper = keyHelper
|
||||
|
||||
@@ -71,6 +71,7 @@ extension VPhoneMenuController {
|
||||
}
|
||||
|
||||
private func activeCaptureView() -> NSView? {
|
||||
NSApp.keyWindow?.contentView ?? NSApp.mainWindow?.contentView
|
||||
guard let captureView else { return nil }
|
||||
return captureView.window == nil ? nil : captureView
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,14 @@ class VPhoneWindowController: NSObject, NSToolbarDelegate {
|
||||
private var windowController: NSWindowController?
|
||||
private var statusTimer: Timer?
|
||||
private weak var control: VPhoneControl?
|
||||
private weak var virtualMachineView: VPhoneVirtualMachineView?
|
||||
|
||||
private nonisolated static let homeItemID = NSToolbarItem.Identifier("home")
|
||||
|
||||
var captureView: VPhoneVirtualMachineView? {
|
||||
virtualMachineView
|
||||
}
|
||||
|
||||
func showWindow(
|
||||
for vm: VZVirtualMachine, screenWidth: Int, screenHeight: Int, screenScale: Double,
|
||||
keyHelper: VPhoneKeyHelper, control: VPhoneControl, ecid: String?
|
||||
@@ -21,6 +26,7 @@ class VPhoneWindowController: NSObject, NSToolbarDelegate {
|
||||
view.capturesSystemKeys = true
|
||||
view.keyHelper = keyHelper
|
||||
view.control = control
|
||||
virtualMachineView = view
|
||||
let vmView: NSView = view
|
||||
|
||||
let scale = CGFloat(screenScale)
|
||||
|
||||
Reference in New Issue
Block a user