Revision: 14901
          http://sourceforge.net/p/skim-app/code/14901
Author:   hofman
Date:     2025-01-29 17:17:24 +0000 (Wed, 29 Jan 2025)
Log Message:
-----------
Use NSColorWell subclass in display pref pane to avoid method swizzling

Modified Paths:
--------------
    trunk/Base.lproj/DisplayPreferences.xib
    trunk/SKColorSwatch.h
    trunk/SKColorSwatch.m

Modified: trunk/Base.lproj/DisplayPreferences.xib
===================================================================
--- trunk/Base.lproj/DisplayPreferences.xib     2025-01-28 17:39:33 UTC (rev 
14900)
+++ trunk/Base.lproj/DisplayPreferences.xib     2025-01-29 17:17:24 UTC (rev 
14901)
@@ -126,7 +126,7 @@
                         <color key="backgroundColor" name="controlColor" 
catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <colorWell toolTip="Color to use for the background of the PDF 
view in normal mode" translatesAutoresizingMaskIntoConstraints="NO" id="16">
+                <colorWell toolTip="Color to use for the background of the PDF 
view in normal mode" translatesAutoresizingMaskIntoConstraints="NO" id="16" 
customClass="SKColorWell">
                     <rect key="frame" x="88" y="164" width="52" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" 
id="VDH-vA-OdJ"/>
@@ -144,7 +144,7 @@
                         <outlet property="nextKeyView" destination="17" 
id="51"/>
                     </connections>
                 </colorWell>
-                <colorWell toolTip="Color to use for the background of the PDF 
view in full screen mode" translatesAutoresizingMaskIntoConstraints="NO" 
id="17">
+                <colorWell toolTip="Color to use for the background of the PDF 
view in full screen mode" translatesAutoresizingMaskIntoConstraints="NO" 
id="17" customClass="SKColorWell">
                     <rect key="frame" x="238" y="164" width="52" height="24"/>
                     <color key="color" red="0.0" green="0.0" blue="0.0" 
alpha="1" colorSpace="calibratedRGB"/>
                     <connections>
@@ -167,7 +167,7 @@
                         <color key="backgroundColor" name="controlColor" 
catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <colorWell toolTip="Color to use for the reading bar" 
translatesAutoresizingMaskIntoConstraints="NO" id="23">
+                <colorWell toolTip="Color to use for the reading bar" 
translatesAutoresizingMaskIntoConstraints="NO" id="23" 
customClass="SKColorWell">
                     <rect key="frame" x="88" y="91" width="52" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" 
id="UcR-gG-Sft"/>

Modified: trunk/SKColorSwatch.h
===================================================================
--- trunk/SKColorSwatch.h       2025-01-28 17:39:33 UTC (rev 14900)
+++ trunk/SKColorSwatch.h       2025-01-29 17:17:24 UTC (rev 14901)
@@ -82,4 +82,9 @@
 
 @end
 
+#pragma mark -
+
+@interface SKColorWell : NSColorWell
+@end
+
 NS_ASSUME_NONNULL_END

Modified: trunk/SKColorSwatch.m
===================================================================
--- trunk/SKColorSwatch.m       2025-01-28 17:39:33 UTC (rev 14900)
+++ trunk/SKColorSwatch.m       2025-01-29 17:17:24 UTC (rev 14901)
@@ -44,7 +44,6 @@
 #import "NSView_SKExtensions.h"
 #import "NSGraphics_SKExtensions.h"
 #import "NSShadow_SKExtensions.h"
-#import "SKRuntime.h"
 
 NSString *SKColorSwatchColorsChangedNotification = 
@"SKColorSwatchColorsChangedNotification";
 NSString *SKColorSwatchOrWellWillActivateNotification = 
@"SKColorSwatchOrWellWillActivateNotification";
@@ -838,20 +837,13 @@
 @end
 
 #pragma mark -
+@implementation SKColorWell
 
-@implementation NSColorWell (SKExtensions)
-
-static void (*original_activate)(id, SEL, BOOL) = NULL;
-
-- (void)replacement_activate:(BOOL)exclusive {
+- (void)activate:(BOOL)exclusive {
     [[NSNotificationCenter defaultCenter] 
postNotificationName:SKColorSwatchOrWellWillActivateNotification object:self];
-    original_activate(self, _cmd, exclusive);
+    [super activate:exclusive];
 }
 
-+ (void)load {
-    original_activate = (void (*)(id, SEL, 
BOOL))SKReplaceInstanceMethodImplementationFromSelector(self, 
@selector(activate:), @selector(replacement_activate:));
-}
-
 @end
 
 #pragma mark -

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