Revision: 29165
          http://sourceforge.net/p/bibdesk/svn/29165
Author:   hofman
Date:     2025-04-22 09:34:57 +0000 (Tue, 22 Apr 2025)
Log Message:
-----------
Draw unbordered dynamic selection highlight only for system background colors 
on 10.10+

Modified Paths:
--------------
    trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h
    trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m

Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h      2025-04-21 
15:53:35 UTC (rev 29164)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h      2025-04-22 
09:34:57 UTC (rev 29165)
@@ -232,6 +232,7 @@
         unsigned int scheduledEndFastScroling:1;
         unsigned int updatingFromSlider:1;
         unsigned int needsReload:1;
+        unsigned int unborderedHighlight:1;
         unsigned int controllingSharedPreviewer:1;
         unsigned int controllingQLPreviewPanel:1;
     } _fvFlags;

Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2025-04-21 
15:53:35 UTC (rev 29164)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2025-04-22 
09:34:57 UTC (rev 29165)
@@ -363,6 +363,7 @@
     _rubberBandView = nil;
     _fvFlags.isMouseDown = NO;
     _fvFlags.isEditable = NO;
+    _fvFlags.unborderedHighlight = floor(NSAppKitVersionNumber) > 
NSAppKitVersionNumber10_9;
     [self setBackgroundColor:[[self class] defaultBackgroundColor]];
     _selectionOverlay = NULL;
     _numberOfColumns = 1;
@@ -494,6 +495,16 @@
 
 #pragma mark API
 
+static inline BOOL _allowsUnborderedHighlight(NSColor *color) {
+    if (color == nil)
+        return YES;
+    if ([[color colorSpaceName] isEqualToString:NSNamedColorSpace] == NO || 
[[color catalogNameComponent] isEqualToString:@"System"] == NO)
+        return NO;
+    if ([[color colorNameComponent] hasSuffix:@"BackgroundColor"] || [[color 
colorNameComponent] hasSuffix:@"RowColor"])
+        return YES;
+    return NO;
+}
+
 - (void)setBackgroundColor:(NSColor *)aColor;
 {
     if (_backgroundColor != aColor) {
@@ -505,6 +516,11 @@
         }
         _backgroundColor = [aColor copy];
         [_backgroundView setBackgroundColor:_backgroundColor];
+        if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_9) {
+            _fvFlags.unborderedHighlight = 
_allowsUnborderedHighlight(_backgroundColor);
+            CGLayerRelease(_selectionOverlay);
+            _selectionOverlay = NULL;
+        }
     }
 }
 
@@ -2176,9 +2192,9 @@
         [nsContext saveGraphicsState];
         
         // @@ Dark mode
-        if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_9) {
+        if (_fvFlags.unborderedHighlight) {
             // [NSAppearance currentAppearance] should alwaye be [self 
effectiveAppearance] here
-            NSColor *fillColor = [[NSColor controlTextColor] 
colorWithAlphaComponent:0.15];
+            NSColor *fillColor = [[NSColor textColor] 
colorWithAlphaComponent:32.0 / 255.0];
             NSBezierPath *p = [NSBezierPath 
bezierPathWithRoundedRect:imageRect xRadius:6.0 yRadius:6.0];
             [fillColor setFill];
             [p fill];

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



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to