Revision: 16437
          http://sourceforge.net/p/skim-app/code/16437
Author:   hofman
Date:     2026-09-09 21:30:54 +0000 (Wed, 09 Sep 2026)
Log Message:
-----------
Add Turkish localization files to subprojects

Modified Paths:
--------------
    trunk/NSWindowController_SKExtensions.m
    trunk/NSWindow_SKExtensions.h
    trunk/NSWindow_SKExtensions.m
    trunk/QuickLook-Skim/QuickLook-Skim.xcodeproj/project.pbxproj
    trunk/SKMainWindowController.m
    trunk/SKMainWindowController_UI.m
    trunk/SkimImporter/SkimImporter.xcodeproj/project.pbxproj
    trunk/SkimNotes/SkimNotes.xcodeproj/project.pbxproj
    trunk/SkimTransitions/SkimTransitions.xcodeproj/project.pbxproj

Modified: trunk/NSWindowController_SKExtensions.m
===================================================================
--- trunk/NSWindowController_SKExtensions.m     2026-09-08 17:18:47 UTC (rev 
16436)
+++ trunk/NSWindowController_SKExtensions.m     2026-09-09 21:30:54 UTC (rev 
16437)
@@ -40,6 +40,7 @@
 #import "NSPointerArray_SKExtensions.h"
 #import "NSPointerFunctions_SKExtensions.h"
 #import "NSGeometry_SKExtensions.h"
+#import "NSWindow_SKExtensions.h"
 
 
 @implementation NSWindowController (SKExtensions)
@@ -54,8 +55,8 @@
     NSPoint point;
     
     [self setShouldCascadeWindows:NO];
-    [window setFrameUsingName:name];
-    if ([window setFrameAutosaveName:name] || pointPtr == NULL) {
+    [window setSafeFrameUsingName:name];
+    if ([window setSafeFrameAutosaveName:name] || pointPtr == NULL) {
         point = SKTopLeftPoint([window frame]);
     } else {
         point = *pointPtr;

Modified: trunk/NSWindow_SKExtensions.h
===================================================================
--- trunk/NSWindow_SKExtensions.h       2026-09-08 17:18:47 UTC (rev 16436)
+++ trunk/NSWindow_SKExtensions.h       2026-09-09 21:30:54 UTC (rev 16437)
@@ -54,6 +54,12 @@
 
 - (BOOL)firstResponderIsDescendantOf:(NSView *)aView;
 
+- (void)saveSafeFrameUsingName:(NSString *)name;
+- (BOOL)setSafeFrameUsingName:(nullable NSString *)name;
+
+- (nullable NSString *)safeFrameAutosaveName;
+- (BOOL)setSafeFrameAutosaveName:(nullable NSString *)name;
+
 @end
 
 NS_ASSUME_NONNULL_END

Modified: trunk/NSWindow_SKExtensions.m
===================================================================
--- trunk/NSWindow_SKExtensions.m       2026-09-08 17:18:47 UTC (rev 16436)
+++ trunk/NSWindow_SKExtensions.m       2026-09-09 21:30:54 UTC (rev 16437)
@@ -39,9 +39,63 @@
 #import "NSWindow_SKExtensions.h"
 #import "NSDocument_SKExtensions.h"
 #import "NSString_SKExtensions.h"
+#import <objc/objc-runtime.h>
 
 @implementation NSWindow (SKExtensions)
 
+static NSMutableSet *autosaveNames = nil;
+
+static char SKFrameAutosaveNameKey;
+
+- (void)handleAutosavedFrameDidChangeNotification:(NSNotification *)note {
+    NSString *name = [self safeFrameAutosaveName];
+    if ([name length])
+        [self saveSafeFrameUsingName:name];
+}
+
+- (void)saveSafeFrameUsingName:(NSString *)name {
+    NSString *key = [NSString stringWithFormat:@"NSWindow Frame %@", name];
+    NSString *string = [self stringWithSavedFrame];
+    [[NSUserDefaults standardUserDefaults] setObject:string forKey:key];
+}
+
+- (BOOL)setSafeFrameUsingName:(NSString *)name {
+    NSString *key = [NSString stringWithFormat:@"NSWindow Frame %@", name];
+    NSString *string = [[NSUserDefaults standardUserDefaults] 
objectForKey:key];
+    if (string == nil)
+        return NO;
+    [self setFrameFromString:string];
+    return YES;
+}
+
+- (NSString *)safeFrameAutosaveName {
+    return objc_getAssociatedObject(self, &SKFrameAutosaveNameKey);
+}
+
+- (BOOL)setSafeFrameAutosaveName:(NSString *)name {
+    NSString *currentName = [self safeFrameAutosaveName];
+    if ([name ?: @"" isEqualToString:currentName ?: @""])
+        return YES;
+    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
+    if ([currentName length]) {
+        [autosaveNames removeObject:currentName];
+        objc_setAssociatedObject(self, &SKFrameAutosaveNameKey, nil, 
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+        [nc removeObserver:self name:NSWindowDidMoveNotification object:self];
+        [nc removeObserver:self name:NSWindowDidResizeNotification 
object:self];
+    }
+    if ([name length] == 0 || [autosaveNames containsObject:name])
+        return NO;
+    if (autosaveNames == nil)
+        autosaveNames = [NSMutableSet set];
+    [autosaveNames addObject:name];
+    objc_setAssociatedObject(self, &SKFrameAutosaveNameKey, name, 
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+    if ([self setSafeFrameUsingName:name] == NO)
+        [self saveSafeFrameUsingName:name];
+    [nc addObserver:self 
selector:@selector(handleAutosavedFrameDidChangeNotification:) 
name:NSWindowDidMoveNotification object:self];
+    [nc addObserver:self 
selector:@selector(handleAutosavedFrameDidChangeNotification:) 
name:NSWindowDidResizeNotification object:self];
+    return YES;
+}
+
 + (void)addTabs:(NSArray *)tabInfos forWindows:(NSArray *)windows {
     if ([windows count] < 2)
         return;

Modified: trunk/QuickLook-Skim/QuickLook-Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/QuickLook-Skim/QuickLook-Skim.xcodeproj/project.pbxproj       
2026-09-08 17:18:47 UTC (rev 16436)
+++ trunk/QuickLook-Skim/QuickLook-Skim.xcodeproj/project.pbxproj       
2026-09-09 21:30:54 UTC (rev 16437)
@@ -44,6 +44,7 @@
                CE1632CD1582ACE000CFF419 /* zh_CN */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = zh_CN; path = 
zh_CN.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                CE4F80E90CFB06EE00DBEA14 /* SKQLConverter.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKQLConverter.h; sourceTree = "<group>"; };
                CE4F80EA0CFB06EE00DBEA14 /* SKQLConverter.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKQLConverter.m; sourceTree = "<group>"; };
+               CE6E4B1D305206CA00910DD5 /* tr */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = 
tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                CE82D0AA0ED347B100020950 /* Ink.png */ = {isa = 
PBXFileReference; lastKnownFileType = image.png; path = Ink.png; sourceTree = 
"<group>"; };
                CE861AAD2A0AABE6002FFA1D /* Widget.png */ = {isa = 
PBXFileReference; lastKnownFileType = image.png; path = Widget.png; sourceTree 
= "<group>"; };
                CE90B6602B4028DA00187C8F /* Skim-QuickLook.xcconfig */ = {isa = 
PBXFileReference; lastKnownFileType = text.xcconfig; path = 
"Skim-QuickLook.xcconfig"; sourceTree = "<group>"; };
@@ -224,6 +225,7 @@
                                zh_TW,
                                pl,
                                zh_CN,
+                               tr,
                        );
                        mainGroup = 089C166AFE841209C02AAC07 /* QuickLookSkim 
*/;
                        projectDirPath = "";
@@ -285,15 +287,16 @@
                        children = (
                                089C167EFE841241C02AAC07 /* en */,
                                CECB02690DC5EB2D0000B16B /* nl */,
+                               CECB026C0DC5EB3B0000B16B /* de */,
+                               CECB026B0DC5EB370000B16B /* fr */,
                                CECB026A0DC5EB320000B16B /* it */,
-                               CECB026B0DC5EB370000B16B /* fr */,
-                               CECB026C0DC5EB3B0000B16B /* de */,
-                               CECB026D0DC5EB3E0000B16B /* ru */,
                                CECB027F0DC5EB5D0000B16B /* es */,
-                               CEB5409B0F261EEF00723C1F /* zh_TW */,
                                CEF8779E11905C53006436A2 /* pl */,
+                               CECB026D0DC5EB3E0000B16B /* ru */,
+                               CE6E4B1D305206CA00910DD5 /* tr */,
                                CE157F3512D4EE6900515B85 /* ja */,
                                CE1632CD1582ACE000CFF419 /* zh_CN */,
+                               CEB5409B0F261EEF00723C1F /* zh_TW */,
                        );
                        name = InfoPlist.strings;
                        sourceTree = "<group>";

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2026-09-08 17:18:47 UTC (rev 16436)
+++ trunk/SKMainWindowController.m      2026-09-09 21:30:54 UTC (rev 16437)
@@ -311,6 +311,8 @@
     [noteTypeSheetController setDelegate:nil];
     [[pdfView document] setContainingDocument:nil];
     [self setPresentationNotesDocument:nil];
+    if ([[[self window] safeFrameAutosaveName] length])
+        [[self window] setSafeFrameAutosaveName:nil];
 }
 
 - (void)windowDidLoad{
@@ -2757,7 +2759,7 @@
                 [toolbarController leftSidePaneDidShowOrHide:[item 
isCollapsed] == NO];
             else if ([item viewController] == rightSideController)
                 [toolbarController rightSidePaneDidShowOrHide:[item 
isCollapsed] == NO];
-            if ([[[self window] frameAutosaveName] length])
+            if (0&[[[self window] frameAutosaveName] length])
                 [self performSelectorOnce:@selector(sidePaneWidthDidChange) 
afterDelay:0.0];
         }
         

Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m   2026-09-08 17:18:47 UTC (rev 16436)
+++ trunk/SKMainWindowController_UI.m   2026-09-09 21:30:54 UTC (rev 16437)
@@ -88,6 +88,7 @@
 #import "SKBookmarkController.h"
 #import "SKNoteToolbarController.h"
 #import "SKPresentationNotesAuxiliary.h"
+#import "NSWindow_SKExtensions.h"
 
 #define NOTES_KEY       @"notes"
 #define SNAPSHOTS_KEY   @"snapshots"
@@ -2137,11 +2138,11 @@
     [nc addObserver:self 
selector:@selector(handlePageLabelsChangedNotification:)
                              name:SKPDFPageLabelsChangedNotification 
object:nil];
     // NSSplitView
-    if ([[[self window] frameAutosaveName] length]) {
+    if ([[[self window] safeFrameAutosaveName] length]) {
         [nc addObserver:self 
selector:@selector(handleSidePaneViewFrameDidChangeNotification:)
-                   name:NSViewFrameDidChangeNotification 
object:leftSideController.view];
-        [nc addObserver:self 
selector:@selector(handleSidePaneViewFrameDidChangeNotification:)
-                   name:NSViewFrameDidChangeNotification 
object:rightSideController.view];
+                   name:NSSplitViewDidResizeSubviewsNotification 
object:splitViewController.splitView];
+        //[nc addObserver:self 
selector:@selector(handleSidePaneViewFrameDidChangeNotification:)
+          //         name:NSViewFrameDidChangeNotification 
object:rightSideController.view];
     }
 }
 

Modified: trunk/SkimImporter/SkimImporter.xcodeproj/project.pbxproj
===================================================================
--- trunk/SkimImporter/SkimImporter.xcodeproj/project.pbxproj   2026-09-08 
17:18:47 UTC (rev 16436)
+++ trunk/SkimImporter/SkimImporter.xcodeproj/project.pbxproj   2026-09-09 
21:30:54 UTC (rev 16437)
@@ -113,6 +113,8 @@
                CE4F972B0CFB4B9D00DBEA14 /* ru */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = ru; path = 
ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                CE68C69E0CEF8A3C00B082F1 /* de */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = 
de.lproj/schema.strings; sourceTree = "<group>"; };
                CE68C6A10CEF8A4300B082F1 /* de */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = 
de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               CE6E4B08305205E900910DD5 /* tr */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = 
tr.lproj/schema.strings; sourceTree = "<group>"; };
+               CE6E4B09305205E900910DD5 /* tr */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = 
tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                CE90B6692B402C6400187C8F /* Skim-Importer.xcconfig */ = {isa = 
PBXFileReference; lastKnownFileType = text.xcconfig; path = 
"Skim-Importer.xcconfig"; sourceTree = "<group>"; };
                CEB540AF0F261F1F00723C1F /* zh_TW */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = zh_TW; path = 
zh_TW.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                CEB540B00F261F1F00723C1F /* zh_TW */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = zh_TW; path = 
zh_TW.lproj/schema.strings; sourceTree = "<group>"; };
@@ -294,6 +296,7 @@
                                zh_TW,
                                pl,
                                zh_CN,
+                               tr,
                        );
                        mainGroup = 089C166AFE841209C02AAC07 /* SkimImporter */;
                        projectDirPath = "";
@@ -428,15 +431,16 @@
                        children = (
                                089C167EFE841241C02AAC07 /* en */,
                                CEFD6C660C01EF820027B933 /* nl */,
+                               CE68C6A10CEF8A4300B082F1 /* de */,
+                               CECD97A50C57A40C0026AAEC /* fr */,
                                CEFD6C670C01EF850027B933 /* it */,
-                               CECD97A50C57A40C0026AAEC /* fr */,
                                CEC4BE4B0CA90A9700299397 /* es */,
-                               CE68C6A10CEF8A4300B082F1 /* de */,
+                               CEF877B511905CB1006436A2 /* pl */,
                                CE4F972B0CFB4B9D00DBEA14 /* ru */,
-                               CEB540AF0F261F1F00723C1F /* zh_TW */,
-                               CEF877B511905CB1006436A2 /* pl */,
+                               CE6E4B09305205E900910DD5 /* tr */,
                                CE157F5D12D4EEFD00515B85 /* ja */,
                                CE1632DA1582AD0000CFF419 /* zh_CN */,
+                               CEB540AF0F261F1F00723C1F /* zh_TW */,
                        );
                        name = InfoPlist.strings;
                        sourceTree = "<group>";
@@ -446,15 +450,16 @@
                        children = (
                                C88FB7DB0674470F006EBB30 /* en */,
                                CEFD6C620C01EF770027B933 /* nl */,
+                               CE68C69E0CEF8A3C00B082F1 /* de */,
+                               CECD97A20C57A4050026AAEC /* fr */,
                                CEFD6C630C01EF7A0027B933 /* it */,
-                               CECD97A20C57A4050026AAEC /* fr */,
                                CEC4BE480CA90A9000299397 /* es */,
-                               CE68C69E0CEF8A3C00B082F1 /* de */,
+                               CEF877AF11905C8A006436A2 /* pl */,
                                CE4F97280CFB4B9300DBEA14 /* ru */,
-                               CEB540B00F261F1F00723C1F /* zh_TW */,
-                               CEF877AF11905C8A006436A2 /* pl */,
+                               CE6E4B08305205E900910DD5 /* tr */,
                                CE157F5E12D4EEFD00515B85 /* ja */,
                                CE1632D31582ACFC00CFF419 /* zh_CN */,
+                               CEB540B00F261F1F00723C1F /* zh_TW */,
                        );
                        name = schema.strings;
                        sourceTree = "<group>";

Modified: trunk/SkimNotes/SkimNotes.xcodeproj/project.pbxproj
===================================================================
--- trunk/SkimNotes/SkimNotes.xcodeproj/project.pbxproj 2026-09-08 17:18:47 UTC 
(rev 16436)
+++ trunk/SkimNotes/SkimNotes.xcodeproj/project.pbxproj 2026-09-09 21:30:54 UTC 
(rev 16437)
@@ -238,6 +238,7 @@
                CE5280B10E41C137000F9CAC /* SkimNotes-Common.xcconfig */ = {isa 
= PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = 
"SkimNotes-Common.xcconfig"; sourceTree = "<group>"; };
                CE5280B60E41C20A000F9CAC /* SkimNotesBase-Framework.xcconfig */ 
= {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; 
path = "SkimNotesBase-Framework.xcconfig"; sourceTree = "<group>"; };
                CE5A82DD0E6C5403008C0AA9 /* it */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = 
it.lproj/SkimNotes.strings; sourceTree = "<group>"; };
+               CE6E4B063052044600910DD5 /* tr */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = 
tr.lproj/SkimNotes.strings; sourceTree = "<group>"; };
                CE83E4251059A831007E3D28 /* ReleaseNotes.rtf */ = {isa = 
PBXFileReference; lastKnownFileType = text.rtf; path = ReleaseNotes.rtf; 
sourceTree = "<group>"; };
                CEA5F53D0E2CED0E00F65088 /* SkimNotesBase.framework */ = {isa = 
PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; 
path = SkimNotesBase.framework; sourceTree = BUILT_PRODUCTS_DIR; };
                CEA5F5490E2CED6D00F65088 /* SkimNotesBase.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SkimNotesBase.h; sourceTree = "<group>"; };
@@ -774,6 +775,7 @@
                                zh_TW,
                                pl,
                                zh_CN,
+                               tr,
                        );
                        mainGroup = 0867D691FE84028FC02AAC07 /* SkimNotes */;
                        productRefGroup = 034768DFFF38A50411DB9C8B /* Products 
*/;
@@ -1007,12 +1009,13 @@
                                CE3907B50E082C930015B0B7 /* fr */,
                                CE3907B70E082C9A0015B0B7 /* de */,
                                CE3907B80E082CAD0015B0B7 /* es */,
-                               CE3907BA0E082CB40015B0B7 /* ru */,
                                CE5A82DD0E6C5403008C0AA9 /* it */,
-                               CEB540910F261E9D00723C1F /* zh_TW */,
                                CEF877D211905CED006436A2 /* pl */,
+                               CE3907BA0E082CB40015B0B7 /* ru */,
+                               CE6E4B063052044600910DD5 /* tr */,
                                CE157F2712D4EDC700515B85 /* ja */,
                                CE1632C71582ACC600CFF419 /* zh_CN */,
+                               CEB540910F261E9D00723C1F /* zh_TW */,
                        );
                        name = SkimNotes.strings;
                        sourceTree = "<group>";

Modified: trunk/SkimTransitions/SkimTransitions.xcodeproj/project.pbxproj
===================================================================
--- trunk/SkimTransitions/SkimTransitions.xcodeproj/project.pbxproj     
2026-09-08 17:18:47 UTC (rev 16436)
+++ trunk/SkimTransitions/SkimTransitions.xcodeproj/project.pbxproj     
2026-09-09 21:30:54 UTC (rev 16437)
@@ -66,6 +66,7 @@
 
 /* Begin PBXFileReference section */
                CE399C2227B32B6200B454EB /* SKTTransitions.cikernel */ = {isa = 
PBXFileReference; lastKnownFileType = text; path = SKTTransitions.cikernel; 
sourceTree = "<group>"; };
+               CE6E4B073052053300910DD5 /* tr */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = 
tr.lproj/Description.strings; sourceTree = "<group>"; };
                CE9C4B8F296D6AAA001D73C6 /* QuartzCore.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; 
sourceTree = SDKROOT; };
                CE9C4B91296D7047001D73C6 /* CoreImage.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
CoreImage.framework; path = System/Library/Frameworks/CoreImage.framework; 
sourceTree = SDKROOT; };
                CEB35B3E22A32FA70033E232 /* SKTRadialSwipeTransition.m */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = 
sourcecode.c.objc; path = SKTRadialSwipeTransition.m; sourceTree = "<group>"; };
@@ -517,6 +518,7 @@
                                zh_TW,
                                "zh-Hant",
                                ja,
+                               tr,
                        );
                        mainGroup = CEDA02742295829B00881DE1;
                        productRefGroup = CEDA027F2295829B00881DE1 /* Products 
*/;
@@ -587,11 +589,12 @@
                                CEDA052722959EE100881DE1 /* nl */,
                                CEDA052A22959EE900881DE1 /* es */,
                                CEDA052B22959EF500881DE1 /* it */,
+                               CEDA053022959F0800881DE1 /* pl */,
                                CEDA052D22959EFF00881DE1 /* ru */,
-                               CEDA053022959F0800881DE1 /* pl */,
+                               CE6E4B073052053300910DD5 /* tr */,
+                               CEDA053722959F6900881DE1 /* ja */,
                                CEDA053422959F1800881DE1 /* zh_CN */,
                                CEDA053522959F2000881DE1 /* zh_TW */,
-                               CEDA053722959F6900881DE1 /* ja */,
                        );
                        name = Description.strings;
                        sourceTree = "<group>";

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