Revision: 14990
          http://sourceforge.net/p/skim-app/code/14990
Author:   hofman
Date:     2025-03-19 17:18:01 +0000 (Wed, 19 Mar 2025)
Log Message:
-----------
Set toolbarStyle before setting up toolbar. Otherwise small mode may be 
forgotten for compact toolbars.

Modified Paths:
--------------
    trunk/SKMainToolbarController.m
    trunk/SKMainWindowController.m

Modified: trunk/SKMainToolbarController.m
===================================================================
--- trunk/SKMainToolbarController.m     2025-03-19 15:07:41 UTC (rev 14989)
+++ trunk/SKMainToolbarController.m     2025-03-19 17:18:01 UTC (rev 14990)
@@ -117,8 +117,6 @@
 #define SKDocumentToolbarPrintItemIdentifier 
@"SKDocumentToolbarPrintItemIdentifier"
 #define SKDocumentToolbarCustomizeItemIdentifier 
@"SKDocumentToolbarCustomizeItemIdentifier"
 
-#define SKToolbarPlacementKey @"SKToolbarPlacement"
-
 static NSString *noteToolImageNames[] = {@"ToolbarTextNoteMenu", 
@"ToolbarAnchoredNoteMenu", @"ToolbarCircleNoteMenu", @"ToolbarSquareNoteMenu", 
@"ToolbarHighlightNoteMenu", @"ToolbarUnderlineNoteMenu", 
@"ToolbarStrikeOutNoteMenu", @"ToolbarLineNoteMenu", @"ToolbarInkNoteMenu"};
 
 static NSString *addNoteToolImageNames[] = {@"ToolbarAddTextNoteMenu", 
@"ToolbarAddAnchoredNoteMenu", @"ToolbarAddCircleNoteMenu", 
@"ToolbarAddSquareNoteMenu", @"ToolbarAddHighlightNoteMenu", 
@"ToolbarAddUnderlineNoteMenu", @"ToolbarAddStrikeOutNoteMenu", 
@"ToolbarAddLineNoteMenu", @"ToolbarAddInkNoteMenu"};
@@ -168,10 +166,12 @@
     [self view];
     
     // Create a new toolbar instance, and attach it to our document window
-    NSToolbar *toolbar;
-    if (([[NSUserDefaults standardUserDefaults] 
integerForKey:SKToolbarPlacementKey] & 1))
-        toolbar = [[NSToolbar alloc] 
initWithIdentifier:SKDocumentToolbarIdentifier];
-    else
+    NSToolbar *toolbar = nil;
+    if (@available(macOS 11.0, *)) {
+        if ([[mainController window] toolbarStyle] == 
NSWindowToolbarStyleUnifiedCompact)
+            toolbar = [[NSToolbar alloc] 
initWithIdentifier:SKDocumentToolbarIdentifier];
+    }
+    if (toolbar == nil)
         toolbar = [[SKToolbar alloc] 
initWithIdentifier:SKDocumentToolbarIdentifier];
     
     // Set up toolbar properties: Allow customization, give a default display 
mode, and remember state in user defaults

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2025-03-19 15:07:41 UTC (rev 14989)
+++ trunk/SKMainWindowController.m      2025-03-19 17:18:01 UTC (rev 14990)
@@ -324,11 +324,6 @@
     pdfView = [[SKPDFView alloc] initWithFrame:[pdfContentView bounds]];
     [pdfView setTranslatesAutoresizingMaskIntoConstraints:NO];
     
-    // Set up the tool bar
-    toolbarController = [[SKMainToolbarController alloc] init];
-    [toolbarController setMainController:self];
-    [toolbarController setupToolbar];
-    
     // Set up the window
     
     enum { SKTBCompact = 1<<0, SKTBBesideTitle = 1<<1, SKTBReplacingTitle = 
1<<2};
@@ -335,8 +330,15 @@
     // hidden pref for toolbar position relative to title, 0-7
     // SKTBBesideTitle | SKTBReplacingTitle = tab bar replacing title
     NSInteger placement = [[NSUserDefaults standardUserDefaults] 
integerForKey:SKToolbarPlacementKey];
+    if (@available(macOS 11.0, *))
+        [window setToolbarStyle:placement <= SKTBCompact ? 
NSWindowToolbarStyleExpanded : (placement & SKTBCompact) ? 
NSWindowToolbarStyleUnifiedCompact : NSWindowToolbarStyleUnified];
+    
+    // Set up the tool bar
+    toolbarController = [[SKMainToolbarController alloc] init];
+    [toolbarController setMainController:self];
+    [toolbarController setupToolbar];
+    
     if (@available(macOS 11.0, *)) {
-        [window setToolbarStyle:placement <= SKTBCompact ? 
NSWindowToolbarStyleExpanded : (placement & SKTBCompact) ? 
NSWindowToolbarStyleUnifiedCompact : NSWindowToolbarStyleUnified];
         if (placement == SKTBCompact)
             [[window toolbar] setDisplayMode:NSToolbarDisplayModeIconOnly];
     } else if ((placement & SKTBCompact)) {

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



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to