Revision: 14143
          http://sourceforge.net/p/skim-app/code/14143
Author:   hofman
Date:     2024-03-25 09:48:45 +0000 (Mon, 25 Mar 2024)
Log Message:
-----------
create window image using CG in snapshot controller

Modified Paths:
--------------
    trunk/SKSnapshotWindow.h
    trunk/SKSnapshotWindow.m
    trunk/SKSnapshotWindowController.m

Modified: trunk/SKSnapshotWindow.h
===================================================================
--- trunk/SKSnapshotWindow.h    2024-03-25 09:24:58 UTC (rev 14142)
+++ trunk/SKSnapshotWindow.h    2024-03-25 09:48:45 UTC (rev 14143)
@@ -41,11 +41,9 @@
 NS_ASSUME_NONNULL_BEGIN
 
 @interface SKSnapshotWindow : NSWindow {
-    BOOL disableConstrainToScreen;
     BOOL windowControllerMiniaturizesWindow;
 }
 
-@property (nonatomic, nullable, readonly) NSImage *windowImage;
 @property (nonatomic) BOOL windowControllerMiniaturizesWindow;
 
 @end

Modified: trunk/SKSnapshotWindow.m
===================================================================
--- trunk/SKSnapshotWindow.m    2024-03-25 09:24:58 UTC (rev 14142)
+++ trunk/SKSnapshotWindow.m    2024-03-25 09:48:45 UTC (rev 14143)
@@ -49,7 +49,6 @@
 @implementation SKSnapshotWindow
 
 @synthesize windowControllerMiniaturizesWindow;
-@dynamic windowImage;
 
 - (instancetype)initWithContentRect:(NSRect)contentRect 
styleMask:(NSWindowStyleMask)styleMask 
backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation {
     self = [super initWithContentRect:contentRect styleMask:styleMask 
backing:bufferingType defer:deferCreation];
@@ -74,30 +73,4 @@
         [super miniaturize:sender];
 }
 
-- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen {
-    if (disableConstrainToScreen)
-        return frameRect;
-    return [super constrainFrameRect:frameRect toScreen:screen];
-}
-
-- (NSImage *)windowImage {
-    NSRect frame = [self frame];
-    BOOL visible = [self isVisible];
-    if (visible == NO) {
-        disableConstrainToScreen = YES;
-        [self setFrameOrigin:NSMakePoint(MIN_WINDOW_COORDINATE, 
MIN_WINDOW_COORDINATE)];
-        [self orderBack:nil];
-        [self displayIfNeeded];
-        disableConstrainToScreen = NO;
-    }
-    CGImageRef cgImage = CGWindowListCreateImage(CGRectNull, 
kCGWindowListOptionIncludingWindow, (CGWindowID)[self windowNumber], 
kCGWindowImageBoundsIgnoreFraming);
-    if (visible == NO) {
-        [self orderOut:nil];
-        [self setFrameOrigin:frame.origin];
-    }
-    NSImage *image = [[NSImage alloc] initWithCGImage:cgImage size:frame.size];
-    CGImageRelease(cgImage);
-    return image;
-}
-
 @end

Modified: trunk/SKSnapshotWindowController.m
===================================================================
--- trunk/SKSnapshotWindowController.m  2024-03-25 09:24:58 UTC (rev 14142)
+++ trunk/SKSnapshotWindowController.m  2024-03-25 09:48:45 UTC (rev 14143)
@@ -617,12 +617,14 @@
     NSImage *windowImage;
     
     if (miniaturize) {
-        windowImage = [(SKSnapshotWindow *)window windowImage];
+        CGImageRef cgImage = CGWindowListCreateImage(CGRectNull, 
kCGWindowListOptionIncludingWindow, (CGWindowID)[window windowNumber], 
kCGWindowImageBoundsIgnoreFraming);
+        windowImage = [[NSImage alloc] initWithCGImage:cgImage size:[window 
frame].size];
+        CGImageRelease(cgImage);
     } else {
-        windowImage = [[NSImage alloc] initWithSize:[window frame].size];
         NSBitmapImageRep *imageRep = [[[window contentView] superview] 
bitmapImageRepCachingDisplay];
         if ([filters count] > 0 && [NSScroller preferredScrollerStyle] == 
NSScrollerStyleLegacy)
             applyFiltersToImageRep(imageRep, filters, [window 
contentLayoutRect]);
+        windowImage = [[NSImage alloc] initWithSize:[window frame].size];
         [windowImage addRepresentation:imageRep];
     }
     

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to