diff --git a/Meta/Lagom/Contrib/MacPDF/LagomPDFDocument.mm b/Meta/Lagom/Contrib/MacPDF/LagomPDFDocument.mm index 628b9e11a9..9325ff3c97 100644 --- a/Meta/Lagom/Contrib/MacPDF/LagomPDFDocument.mm +++ b/Meta/Lagom/Contrib/MacPDF/LagomPDFDocument.mm @@ -46,11 +46,38 @@ - (void)windowControllerDidLoadNib:(NSWindowController*)aController { [super windowControllerDidLoadNib:aController]; + + NSLog(@"restorationClass %@", aController.window.restorationClass); + NSLog(@"restorable %@", @(aController.window.restorable)); + NSLog(@"identifier %@", aController.window.identifier); + if (_doc) { [_pdfView setDocument:_doc->make_weak_ptr()]; } } ++ (NSArray*)allowedClassesForRestorableStateKeyPath:(NSString*)keyPath +{ + auto res = [NSDocument allowedClassesForRestorableStateKeyPath:keyPath]; + NSLog(@"restore %@", res); + return res; +} + +- (void)restoreDocumentWindowWithIdentifier:(NSUserInterfaceItemIdentifier)identifier + state:(NSCoder*)state + completionHandler:(void (^)(NSWindow*, NSError*))completionHandler +{ + NSLog(@"here restoreDocumentWindowWithIdentifier"); + return [super restoreDocumentWindowWithIdentifier:identifier state:state completionHandler:completionHandler]; +} + +- (void)encodeRestorableStateWithCoder:(NSCoder*)coder +{ + // called on switch away from app + NSLog(@"here encodeRestorableStateWithCoder"); + [super encodeRestorableStateWithCoder:coder]; +} + - (NSData*)dataOfType:(NSString*)typeName error:(NSError**)outError { // Insert code here to write your document to data of the specified type. If outError != NULL, ensure that you create and set an appropriate error if you return nil. diff --git a/Meta/Lagom/Contrib/MacPDF/LagomPDFView.mm b/Meta/Lagom/Contrib/MacPDF/LagomPDFView.mm index b3cd452fbf..eaf760a950 100644 --- a/Meta/Lagom/Contrib/MacPDF/LagomPDFView.mm +++ b/Meta/Lagom/Contrib/MacPDF/LagomPDFView.mm @@ -73,6 +73,7 @@ static NSBitmapImageRep* ns_from_gfx(NonnullRefPtr bitmap_p) { if (!_doc || _doc->get_page_count() == 0) return; + [self invalidateRestorableState]; NSSize pixel_size = [self convertSizeToBacking:self.bounds.size]; if (auto bitmap_or = render(*_doc, _page_index, pixel_size); !bitmap_or.is_error()) _rep = ns_from_gfx(bitmap_or.value()); @@ -112,4 +113,14 @@ static NSBitmapImageRep* ns_from_gfx(NonnullRefPtr bitmap_p) [self setNeedsDisplay:YES]; } } + +- (void)encodeRestorableStateWithCoder:(NSCoder*)coder +{ + NSLog(@"FIXME encodeRestorableStateWithCoder"); +} + +- (void)restoreStateWithCoder:(NSCoder*)coder +{ + NSLog(@"FIXME restoreStateWithCoder"); +} @end