node-mac-recorder 2.6.19 → 2.6.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-mac-recorder",
3
- "version": "2.6.19",
3
+ "version": "2.6.21",
4
4
  "description": "Native macOS screen recording package for Node.js applications",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -75,19 +75,19 @@ void updateScreenOverlays();
75
75
 
76
76
  - (void)updateAppearance {
77
77
  if (self.isActiveWindow) {
78
- // Active window: brighter background
79
- self.layer.backgroundColor = [[NSColor colorWithRed:0.6 green:0.4 blue:0.9 alpha:0.4] CGColor];
78
+ // Active window: completely transparent background to eliminate blue border effect
79
+ self.layer.backgroundColor = [[NSColor clearColor] CGColor];
80
80
  // Active window appearance set
81
81
  } else {
82
- // Inactive window: dimmer background
83
- self.layer.backgroundColor = [[NSColor colorWithRed:0.4 green:0.2 blue:0.6 alpha:0.25] CGColor];
82
+ // Inactive window: completely transparent background to eliminate blue border effect
83
+ self.layer.backgroundColor = [[NSColor clearColor] CGColor];
84
84
  // Inactive window appearance set
85
85
  }
86
86
 
87
- // No border to match screen selector
87
+ // No border to match screen selector - eliminate any visual border effect
88
88
  self.layer.borderColor = [[NSColor clearColor] CGColor];
89
89
  self.layer.borderWidth = 0.0;
90
- self.layer.cornerRadius = 8.0;
90
+ self.layer.cornerRadius = 0.0; // Remove corner radius to eliminate border-like appearance
91
91
  self.layer.masksToBounds = YES;
92
92
  self.layer.shadowOpacity = 0.0;
93
93
  self.layer.shadowRadius = 0.0;
@@ -132,8 +132,8 @@ void updateScreenOverlays();
132
132
  [super drawRect:dirtyRect];
133
133
 
134
134
  if (!self.recordingWindowInfo) {
135
- // No window info, fill with semi-transparent black
136
- [[NSColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5] setFill];
135
+ // No window info, fill with semi-transparent black - 25% more transparent
136
+ [[NSColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.375] setFill];
137
137
  NSRectFill(dirtyRect);
138
138
  return;
139
139
  }
@@ -157,8 +157,8 @@ void updateScreenOverlays();
157
157
  [maskPath appendBezierPath:windowPath];
158
158
  [maskPath setWindingRule:NSWindingRuleEvenOdd]; // Creates hole effect
159
159
 
160
- // Fill with semi-transparent black, excluding window area
161
- [[NSColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5] setFill];
160
+ // Fill with semi-transparent black, excluding window area - 25% more transparent
161
+ [[NSColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.375] setFill];
162
162
  [maskPath fill];
163
163
  }
164
164
 
@@ -194,13 +194,13 @@ void updateScreenOverlays();
194
194
 
195
195
  if (!self.screenInfo) return;
196
196
 
197
- // Background with transparency - purple tone varies by active state
197
+ // Background with transparency - completely transparent to eliminate blue border effect
198
198
  if (self.isActiveScreen) {
199
- // Active screen: brighter, more opaque
200
- [[NSColor colorWithRed:0.6 green:0.4 blue:0.9 alpha:0.4] setFill];
199
+ // Active screen: completely transparent background
200
+ [[NSColor clearColor] setFill];
201
201
  } else {
202
- // Inactive screen: dimmer, less opaque
203
- [[NSColor colorWithRed:0.4 green:0.2 blue:0.6 alpha:0.25] setFill];
202
+ // Inactive screen: completely transparent background
203
+ [[NSColor clearColor] setFill];
204
204
  }
205
205
  NSRectFill(self.bounds);
206
206
 
@@ -1056,18 +1056,16 @@ bool startScreenSelection() {
1056
1056
 
1057
1057
  // Window created for specific screen
1058
1058
 
1059
- // Use a high but not maximum level to avoid issues with secondary displays
1060
- [overlayWindow setLevel:CGWindowLevelForKey(kCGFloatingWindowLevelKey) + 1000];
1059
+ // Use maximum level to match g_overlayWindow
1060
+ [overlayWindow setLevel:CGWindowLevelForKey(kCGMaximumWindowLevelKey)];
1061
1061
  [overlayWindow setOpaque:NO];
1062
1062
  [overlayWindow setBackgroundColor:[NSColor clearColor]];
1063
1063
  [overlayWindow setIgnoresMouseEvents:NO];
1064
1064
  [overlayWindow setAcceptsMouseMovedEvents:YES];
1065
1065
  [overlayWindow setHasShadow:NO];
1066
1066
  [overlayWindow setAlphaValue:1.0];
1067
- // Ensure window appears on all spaces and stays put
1068
- [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary |
1069
- NSWindowCollectionBehaviorCanJoinAllSpaces |
1070
- NSWindowCollectionBehaviorIgnoresCycle];
1067
+ // Ensure window appears on all spaces and stays put - match g_overlayWindow
1068
+ [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
1071
1069
 
1072
1070
  // Remove any default window decorations and borders
1073
1071
  [overlayWindow setTitlebarAppearsTransparent:YES];
@@ -1246,7 +1244,7 @@ bool startScreenSelection() {
1246
1244
  // Secondary screens - more aggressive approach
1247
1245
  [overlayWindow orderFront:nil];
1248
1246
  [overlayWindow makeKeyAndOrderFront:nil]; // Try makeKey too
1249
- [overlayWindow setLevel:CGWindowLevelForKey(kCGFloatingWindowLevelKey) + 2000]; // Even higher level
1247
+ [overlayWindow setLevel:CGWindowLevelForKey(kCGMaximumWindowLevelKey)]; // Match g_overlayWindow level
1250
1248
 
1251
1249
  // Secondary screen overlay shown
1252
1250
 
@@ -1358,11 +1356,11 @@ bool showScreenRecordingPreview(NSDictionary *screenInfo) {
1358
1356
  defer:NO
1359
1357
  screen:screen];
1360
1358
 
1361
- [overlayWindow setLevel:CGWindowLevelForKey(kCGOverlayWindowLevelKey)];
1359
+ [overlayWindow setLevel:CGWindowLevelForKey(kCGMaximumWindowLevelKey)];
1362
1360
  [overlayWindow setOpaque:NO];
1363
- [overlayWindow setBackgroundColor:[NSColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5]];
1364
- [overlayWindow setIgnoresMouseEvents:YES];
1365
- [overlayWindow setAcceptsMouseMovedEvents:NO];
1361
+ [overlayWindow setBackgroundColor:[NSColor clearColor]];
1362
+ [overlayWindow setIgnoresMouseEvents:NO];
1363
+ [overlayWindow setAcceptsMouseMovedEvents:YES];
1366
1364
  [overlayWindow setHasShadow:NO];
1367
1365
  // no border
1368
1366
  [overlayWindow setStyleMask:NSWindowStyleMaskBorderless];