Agrego frontend app
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import Cocoa
|
||||
import FlutterMacOS
|
||||
|
||||
@main
|
||||
class AppDelegate: FlutterAppDelegate {
|
||||
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// Esta app se relanza siempre por script (redirect al updater y viceversa),
|
||||
// nunca tiene sentido "resumir" la ventana de una sesión anterior. Con esto
|
||||
// en `true`, macOS intenta restaurar el estado de ventana guardado al
|
||||
// arrancar y, si falla la restauración (visto en el log del sistema:
|
||||
// "Unable to find className=(null)"), aplica una heurística que termina
|
||||
// interfiriendo con la ventana recién creada antes de que Flutter pinte el
|
||||
// primer frame — pantalla negra permanente sin ningún error de Dart.
|
||||
override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// Cuando esta app la lanza soma_pro_updater (vía `open --args`) en vez de
|
||||
// Finder/el usuario directamente, la ventana puede quedar creada pero sin
|
||||
// volverse la app activa/en primer plano — macOS pausa el render de
|
||||
// ventanas no activas para ahorrar batería, y como esta pantalla no tiene
|
||||
// animación propia que fuerce un repaint, queda negra para siempre. Forzar
|
||||
// la activación acá evita depender de que el proceso que nos lanzó haya
|
||||
// completado bien el traspaso de foco.
|
||||
override func applicationDidFinishLaunching(_ notification: Notification) {
|
||||
super.applicationDidFinishLaunching(notification)
|
||||
NSApp.activate(ignoringOtherApps: true)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user