feat: remember position/size of secondary windows (closes #5305)
This commit is contained in:
1 parent
c51376fd26
commit
4b85fb8cf7
6 files changed
+12
-3
No files matched your search
+7
-3
@@ -183,11 +183,15 @@ class App: AppCenterApplication {
|
||||
func showSecondaryWindow(_ window: NSWindow?) {
|
||||
if let window {
|
||||
NSScreen.updatePreferred()
|
||||
NSScreen.preferred.repositionPanel(window)
|
||||
App.shared.activate(ignoringOtherApps: true)
|
||||
window.makeKeyAndOrderFront(nil)
|
||||
// Use the center function to continue to center, the `repositionPanel` function cannot center, it may be a system bug
|
||||
window.center()
|
||||
// if the window was resized/repositioned by the user, restore the window the way it was
|
||||
let restored = window.setFrameUsingName(window.frameAutosaveName)
|
||||
if !restored {
|
||||
NSScreen.preferred.repositionPanel(window)
|
||||
// Use the center function to continue to center, the `repositionPanel` function cannot center, it may be a system bug
|
||||
window.center()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ class DebugWindow: NSPanel {
|
||||
backing: .buffered, defer: false)
|
||||
setupWindow()
|
||||
setupView()
|
||||
setFrameAutosaveName("DebugWindow")
|
||||
}
|
||||
|
||||
private func setupWindow() {
|
||||
|
||||
@@ -19,6 +19,7 @@ class FeedbackWindow: NSWindow {
|
||||
self.init(contentRect: .zero, styleMask: [.titled, .miniaturizable, .closable], backing: .buffered, defer: false)
|
||||
setupWindow()
|
||||
setupView()
|
||||
setFrameAutosaveName("FeedbackWindow")
|
||||
}
|
||||
|
||||
private func setupWindow() {
|
||||
|
||||
@@ -11,6 +11,7 @@ class PermissionsWindow: NSWindow {
|
||||
delegate = self
|
||||
setupWindow()
|
||||
setupView()
|
||||
setFrameAutosaveName("PermissionsWindow")
|
||||
}
|
||||
|
||||
func show() {
|
||||
|
||||
@@ -517,6 +517,7 @@ class SettingsWindow: NSWindow {
|
||||
maxSize = NSSize(width: windowWidth, height: CGFloat.greatestFiniteMagnitude)
|
||||
setupWindow()
|
||||
setupView()
|
||||
setFrameAutosaveName("SettingsWindow")
|
||||
}
|
||||
|
||||
private func setupWindow() {
|
||||
|
||||
@@ -73,6 +73,7 @@ class AboutWindow: NSPanel {
|
||||
self.init(contentRect: NSRect(x: 0, y: 0, width: 600, height: 450), styleMask: [.utilityWindow, .titled, .closable], backing: .buffered, defer: false)
|
||||
setupWindow()
|
||||
setupView()
|
||||
setFrameAutosaveName("AboutWindow")
|
||||
}
|
||||
|
||||
private func setupWindow() {
|
||||
|
||||
Reference in new issue
Block a user