Revision: 15004
          http://sourceforge.net/p/skim-app/code/15004
Author:   hofman
Date:     2025-03-22 17:28:37 +0000 (Sat, 22 Mar 2025)
Log Message:
-----------
Use small size in note toolbar when main toolbar uses small size

Modified Paths:
--------------
    trunk/SKNoteToolbarController.m

Modified: trunk/SKNoteToolbarController.m
===================================================================
--- trunk/SKNoteToolbarController.m     2025-03-22 16:33:39 UTC (rev 15003)
+++ trunk/SKNoteToolbarController.m     2025-03-22 17:28:37 UTC (rev 15004)
@@ -51,18 +51,17 @@
 
 static char SKDefaultsObservationContext;
 
+static char SKToolbarObservationContext;
+
+@interface SKNoteToolbarController (SKPrivate)
+- (void)updateSizeMode;
+@end
+
 @implementation SKNoteToolbarController
 
 @synthesize mainController;
 @dynamic visible;
 
-- (void)dealloc {
-    if (colorsButton) {
-        @try { [[NSUserDefaults standardUserDefaults] removeObserver:self 
forKeyPath:SKSwatchColorsKey context:&SKDefaultsObservationContext]; }
-        @catch (id e) {}
-    }
-}
-
 - (BOOL)isVisible {
     return [self isViewLoaded] && [[self view] window] != nil;
 }
@@ -150,8 +149,25 @@
     [NSLayoutConstraint activateConstraints:constraints];
     
     [self setView:view];
+    
+    [self updateSizeMode];
+    [[[mainController window] toolbar] addObserver:self forKeyPath:@"sizeMode" 
options:0 context:&SKToolbarObservationContext];
 }
 
+- (void)setMainController:(SKMainWindowController *)newMainController {
+    if (mainController) {
+        if (noteButton) {
+            @try { [[[mainController window] toolbar] removeObserver:self 
forKeyPath:@"sizeMode" context:&SKToolbarObservationContext]; }
+            @catch (id e) {}
+        }
+        if (colorsButton) {
+            @try { [[NSUserDefaults standardUserDefaults] removeObserver:self 
forKeyPath:SKSwatchColorsKey context:&SKDefaultsObservationContext]; }
+            @catch (id e) {}
+        }
+    }
+    mainController = newMainController;
+}
+
 - (void)createNewNote:(id)sender {
     if ([mainController.pdfView canSelectNote]) {
         NSInteger type = [sender selectedSegment];
@@ -213,6 +229,15 @@
     }
 }
 
+- (void)updateSizeMode {
+    NSToolbarSizeMode sizeMode = [[[mainController window] toolbar] sizeMode];
+    NSControlSize controlSize = sizeMode == NSToolbarSizeModeSmall ? 
NSControlSizeSmall : NSControlSizeRegular;
+    [noteButton setControlSize:controlSize];
+    [colorsButton setControlSize:controlSize];
+    [fontsButton setControlSize:controlSize];
+    [linesButton setControlSize:controlSize];
+}
+
 - (void)validateButtons {
     [noteButton setEnabled:[mainController hasOverview] == NO && 
[mainController.pdfView canSelectNote]];
 }
@@ -220,6 +245,8 @@
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
     if (context == &SKDefaultsObservationContext) {
         [self updateColorsMenu];
+    } else if (context == &SKToolbarObservationContext) {
+        [self updateSizeMode];
     } else {
         [super observeValueForKeyPath:keyPath ofObject:object change:change 
context:context];
     }

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