macOS 12.1, Xcode Version 8.1 (8T61a).

App with two windows: FestEvent and Preferences, which have Autosave names of 
FestEvent, resp.  Preferences.

Start App → FestEvent window will show.
Make it to show Preferences window as well.
Move both windows around and observe Preferences.plist to have absolutely 
plausible values for both: “NSWindow Frame Preferences” and: “NSWindow Frame 
FestEvent”.
Quit the app.

Start App again →  FestEvent window will show, but NOT at its previous location 
as recorded in Preferences.plist, but at the location of the Preferences window.

At this second run of my app the following happens:

13:15:49.967892  -[AppDelegate applicationDidFinishLaunching:] Preferences 1030 
348 383 83 0 0 1440 877
13:15:49.967929  -[AppDelegate applicationDidFinishLaunching:] FestEvent   0 
142 383 247 0 0 1440 877
13:16:06.615131  -[FestWindowController windowDidResize:]      FestEvent   {{0, 
142}, {383, 247}}
13:16:06.639579  -[FestWindowController windowDidLoad]         FestEvent   {{0, 
142}, {383, 247}}
13:16:06.714612  -[AppDelegate applicationDidFinishLaunching:] FestEvent   {{0, 
142}, {383, 247}}

So far everything is fine: the FestEvent window has the correct location.

But now some obnoxious NSPersistentUIRestorer takes over:

13:16:14.950504  -[FestWindowController windowDidResize:]      FestEvent   
{{1030, 348}, {383, 83}}
Note: this is the location of the Preferences window.


(lldb) bt
* thread #1: tid = 0x20a79e, 0x0000000100007784 
FestEvent`-[FestWindowController windowDidResize:](self=0x00006180000e0900, 
_cmd="windowDidResize:", notification=@"NSWindowDidResizeNotification") + 260 
at FestWindowController.m:116, queue = 'com.apple.main-thread', stop reason = 
step over
  * frame #0: 0x0000000100007784 FestEvent`-[FestWindowController 
windowDidResize:](self=0x00006180000e0900, _cmd="windowDidResize:", 
notification=@"NSWindowDidResizeNotification") + 260 at 
FestWindowController.m:116
    frame #1: 0x00007fff8dba95ec 
CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    frame #2: 0x00007fff8dba94eb CoreFoundation`_CFXRegistrationPost + 427
    frame #3: 0x00007fff8dba9252 
CoreFoundation`___CFXNotificationPost_block_invoke + 50
    frame #4: 0x00007fff8db67972 CoreFoundation`-[_CFXNotificationRegistrar 
find:object:observer:enumerator:] + 2018
    frame #5: 0x00007fff8db6695b CoreFoundation`_CFXNotificationPost + 667
    frame #6: 0x00007fff8f5940e3 Foundation`-[NSNotificationCenter 
postNotificationName:object:userInfo:] + 66
    frame #7: 0x00007fff8b8e6177 AppKit`-[NSWindow 
_setFrameCommon:display:stashSize:] + 3326
    frame #8: 0x00007fff8b8e546b AppKit`-[NSWindow 
_setFrame:display:allowImplicitAnimation:stashSize:] + 222
    frame #9: 0x00007fff8b8e5386 AppKit`-[NSWindow setFrame:display:] + 67
    frame #10: 0x00007fff8b8e4e9f AppKit`-[NSWindow 
_setFrameFromString:overrideTopLeft:preferActiveDisplay:constrainFullFrame:force:]
 + 1398
    frame #11: 0x00007fff8bb548c5 AppKit`-[NSWindow restoreStateWithCoder:] + 
902
    frame #12: 0x00007fff8bb144ec 
AppKit`restorePersistentStateWithWindowRestoration + 1043
    frame #13: 0x00007fff8bb54501 AppKit`-[NSPersistentUIRestorer 
invokeRestoration:] + 574
    frame #14: 0x00007fff8bb54264 AppKit`__79-[NSPersistentUIRestorer 
finishedRestoringWindowsWithZOrder:completionHandler:]_block_invoke + 219
    frame #15: 0x00007fff8bb5402b AppKit`+[NSWindow 
_batchMinimizeWindowsWithBlock:] + 89
    frame #16: 0x00007fff8bb14a29 AppKit`-[NSPersistentUIRestorer 
finishedRestoringWindowsWithZOrder:completionHandler:] + 746
    frame #17: 0x00007fff8bb532e8 AppKit`__82-[NSPersistentUIRestorer 
restoreStateFromRecords:usingDelegate:completionHandler:]_block_invoke_3 + 166
    frame #18: 0x00007fff8bb5321b 
AppKit`__99-[NSApplication(NSPersistentUIRestorationSupport) 
_restoreWindowWithRestoration:completionHandler:]_block_invoke + 401
    frame #19: 0x00007fff8c26350f 
AppKit`__99-[NSApplication(NSPersistentUIRestorationSupport) 
_restoreWindowWithRestoration:completionHandler:]_block_invoke.762 + 57
    frame #20: 0x00007fff8dbb330c 
CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
    frame #21: 0x00007fff8db94634 CoreFoundation`__CFRunLoopDoBlocks + 356
    frame #22: 0x00007fff8db93da5 CoreFoundation`__CFRunLoopRun + 917
    frame #23: 0x00007fff8db937b4 CoreFoundation`CFRunLoopRunSpecific + 420
    frame #24: 0x00007fff8d12ffbc HIToolbox`RunCurrentEventLoopInMode + 240
    frame #25: 0x00007fff8d12fcf9 HIToolbox`ReceiveNextEventCommon + 184
    frame #26: 0x00007fff8d12fc26 
HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
    frame #27: 0x00007fff8b819b79 AppKit`_DPSNextEvent + 1093
    frame #28: 0x00007fff8bf2f1c3 AppKit`-[NSApplication(NSEvent) 
_nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1637
    frame #29: 0x00007fff8b80e53d AppKit`-[NSApplication run] + 926
    frame #30: 0x00007fff8b7d91ad AppKit`NSApplicationMain + 1237
    frame #31: 0x0000000100006f02 FestEvent`main(argc=3, 
argv=0x00007fff5fbff6d0) + 34 at main.m:12
    frame #32: 0x00007fffa2d00255 libdyld.dylib`start + 1

How to prevent this?

Gerriet.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to