Revision: 15077
          http://sourceforge.net/p/skim-app/code/15077
Author:   hofman
Date:     2025-04-03 17:24:08 +0000 (Thu, 03 Apr 2025)
Log Message:
-----------
Draw shadowed text twice to make it more pronounced

Modified Paths:
--------------
    trunk/SKFontWell.h
    trunk/SKFontWell.m

Modified: trunk/SKFontWell.h
===================================================================
--- trunk/SKFontWell.h  2025-04-03 16:21:42 UTC (rev 15076)
+++ trunk/SKFontWell.h  2025-04-03 17:24:08 UTC (rev 15077)
@@ -62,6 +62,7 @@
 @interface SKFontWellCell : NSButtonCell {
     NSColor *textColor;
     BOOL hasTextColor;
+    BOOL drawShadow;
 }
 
 @property (nonatomic, nullable, copy) NSColor *textColor;

Modified: trunk/SKFontWell.m
===================================================================
--- trunk/SKFontWell.m  2025-04-03 16:21:42 UTC (rev 15076)
+++ trunk/SKFontWell.m  2025-04-03 17:24:08 UTC (rev 15077)
@@ -431,6 +431,19 @@
     }
 }
 
+- (void)drawInteriorWithFrame:(NSRect)frame inView:(NSView *)controlView {
+    if ([self hasTextColor]) {
+        CGFloat textLuminance = [[self textColor] luminance];
+        CGFloat backgroundLuminance = [([self state] == NSControlStateValueOn 
? [NSColor selectedControlColor] : [NSColor controlBackgroundColor]) luminance];
+        if ((fmax(textLuminance, backgroundLuminance) + 0.05) / 
(fmin(textLuminance, backgroundLuminance) + 0.05) < 4.5) {
+            drawShadow = YES;
+            [super drawInteriorWithFrame:frame inView:controlView];
+        }
+    }
+    [super drawInteriorWithFrame:frame inView:controlView];
+    drawShadow = NO;
+}
+
 - (NSRect)focusRingMaskBoundsForFrame:(NSRect)cellFrame inView:(NSView 
*)controlView {
     return cellFrame;
 }
@@ -443,11 +456,9 @@
     if ([self hasTextColor]) {
         NSMutableAttributedString *attrString = [[super attributedTitle] 
mutableCopy];
         [attrString addAttribute:NSForegroundColorAttributeName value:[self 
textColor] range:NSMakeRange(0, [attrString length])];
-        CGFloat textLuminance = [[self textColor] luminance];
-        CGFloat backgroundLuminance = [([self state] == NSControlStateValueOn 
? [NSColor selectedControlColor] : [self backgroundColor]) luminance];
-        if ((fmax(textLuminance, backgroundLuminance) + 0.05) / 
(fmin(textLuminance, backgroundLuminance) + 0.05) < 4.5) {
+        if (drawShadow) {
             NSShadow *shade = [[NSShadow alloc] init];
-            [shade setShadowColor:backgroundLuminance < 0.5 ? [NSColor 
whiteColor] : [NSColor blackColor]];
+            [shade setShadowColor:SKHasDarkAppearance() ? [NSColor whiteColor] 
: [NSColor blackColor]];
             [shade setShadowBlurRadius:1.0];
             [attrString addAttribute:NSShadowAttributeName value:shade 
range:NSMakeRange(0, [attrString length])];
         }

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