node-mac-recorder 2.10.30 → 2.10.32

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.10.30",
3
+ "version": "2.10.32",
4
4
  "description": "Native macOS screen recording package for Node.js applications",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -129,8 +129,9 @@ void updateScreenOverlays();
129
129
  [fillColor setFill];
130
130
  [highlightPath fill];
131
131
 
132
- [strokeColor setStroke];
132
+ // 1px purple stroke
133
133
  [highlightPath setLineWidth:1.0];
134
+ [strokeColor setStroke];
134
135
  [highlightPath stroke];
135
136
  }
136
137
 
@@ -325,7 +326,8 @@ void updateScreenOverlays();
325
326
  self = [super initWithFrame:frameRect];
326
327
  if (self) {
327
328
  self.wantsLayer = YES;
328
- self.layer.backgroundColor = [[NSColor clearColor] CGColor];
329
+ // Semi-transparent purple background for screen/window overlay
330
+ self.layer.backgroundColor = [[NSColor colorWithRed:0.27 green:0.0 blue:0.77 alpha:0.18] CGColor];
329
331
  // Ensure no borders or decorations
330
332
  self.layer.borderWidth = 1.0;
331
333
  self.layer.cornerRadius = 8.0;
@@ -385,7 +387,8 @@ void updateScreenOverlays();
385
387
  self = [super initWithFrame:frameRect];
386
388
  if (self) {
387
389
  self.wantsLayer = YES;
388
- self.layer.backgroundColor = [[NSColor clearColor] CGColor];
390
+ // Semi-transparent purple background for screen/window overlay
391
+ self.layer.backgroundColor = [[NSColor colorWithRed:0.27 green:0.0 blue:0.77 alpha:0.18] CGColor];
389
392
  // Ensure no borders or decorations
390
393
  self.layer.borderWidth = 1.0;
391
394
  self.layer.cornerRadius = 8.0;
@@ -935,14 +938,14 @@ void updateOverlay() {
935
938
  NSRect overlayFrame = [g_overlayView frame]; // Use overlay view frame for proper centering
936
939
  NSPoint buttonCenter = NSMakePoint(
937
940
  (overlayFrame.size.width - buttonSize.width) / 2,
938
- (overlayFrame.size.height - buttonSize.height) / 2 + 30 // Slightly above center
941
+ (overlayFrame.size.height - buttonSize.height) / 2 // Perfect center
939
942
  );
940
943
  [g_selectButton setFrameOrigin:buttonCenter];
941
944
 
942
- // Position app icon above text label in absolute overlay center
945
+ // Position app icon above center
943
946
  NSPoint iconCenter = NSMakePoint(
944
947
  (overlayFrame.size.width - 96) / 2, // Center horizontally on overlay
945
- buttonCenter.y + buttonSize.height + 60 + 10 // Above label + text height + margin
948
+ (overlayFrame.size.height / 2) + 80 // 80px above center
946
949
  );
947
950
  [appIconView setFrameOrigin:iconCenter];
948
951
  NSLog(@"🎯 Positioning app icon at: (%.0f, %.0f) for window size: (%.0f, %.0f)",
@@ -962,10 +965,10 @@ void updateOverlay() {
962
965
  floatAnimationX.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
963
966
  [appIconView.layer addAnimation:floatAnimationX forKey:@"floatAnimationX"];
964
967
 
965
- // Position info label in absolute overlay center, above button
968
+ // Position info label between icon and button
966
969
  NSPoint labelCenter = NSMakePoint(
967
970
  (overlayFrame.size.width - [infoLabel frame].size.width) / 2, // Center horizontally on overlay
968
- buttonCenter.y + buttonSize.height + 10 // 10px above button, below icon
971
+ (overlayFrame.size.height / 2) + 30 // 30px above center, below icon
969
972
  );
970
973
  [infoLabel setFrameOrigin:labelCenter];
971
974
 
@@ -983,7 +986,7 @@ void updateOverlay() {
983
986
  NSSize cancelButtonSize = [cancelButton frame].size;
984
987
  NSPoint cancelButtonCenter = NSMakePoint(
985
988
  (overlayFrame.size.width - cancelButtonSize.width) / 2, // Center horizontally on overlay
986
- buttonCenter.y - buttonSize.height - 20 // 20px below main button
989
+ (overlayFrame.size.height / 2) - 60 // 60px below center
987
990
  );
988
991
  [cancelButton setFrameOrigin:cancelButtonCenter];
989
992
  }
@@ -1511,17 +1514,17 @@ bool startScreenSelection() {
1511
1514
  NSString *resolution = [screenInfo objectForKey:@"resolution"] ?: @"Unknown Resolution";
1512
1515
  [screenInfoLabel setStringValue:[NSString stringWithFormat:@"%@\n%@", screenName, resolution]];
1513
1516
 
1514
- // Position buttons - Start Record in center, Cancel below it
1517
+ // Position buttons - Start Record in perfect center
1515
1518
  NSPoint buttonCenter = NSMakePoint(
1516
1519
  (screenFrame.size.width - [selectButton frame].size.width) / 2,
1517
- (screenFrame.size.height - [selectButton frame].size.height) / 2 + 15 // Slightly above center
1520
+ (screenFrame.size.height - [selectButton frame].size.height) / 2 // Perfect center
1518
1521
  );
1519
1522
  [selectButton setFrameOrigin:buttonCenter];
1520
1523
 
1521
- // Position screen icon above text label
1524
+ // Position screen icon above center
1522
1525
  NSPoint iconCenter = NSMakePoint(
1523
1526
  (screenFrame.size.width - 96) / 2, // Center horizontally (icon is 96px wide)
1524
- buttonCenter.y + [selectButton frame].size.height + 60 + 10 // Above label + text height + margin
1527
+ (screenFrame.size.height / 2) + 80 // 80px above center
1525
1528
  );
1526
1529
  [screenIconView setFrameOrigin:iconCenter];
1527
1530
 
@@ -1535,16 +1538,16 @@ bool startScreenSelection() {
1535
1538
  screenFloatAnimationX.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
1536
1539
  [screenIconView.layer addAnimation:screenFloatAnimationX forKey:@"floatAnimationX"];
1537
1540
 
1538
- // Position info label at screen center, above button
1541
+ // Position info label between icon and button
1539
1542
  NSPoint labelCenter = NSMakePoint(
1540
1543
  (screenFrame.size.width - [screenInfoLabel frame].size.width) / 2, // Center horizontally
1541
- buttonCenter.y + [selectButton frame].size.height + 10 // 10px above button, below icon
1544
+ (screenFrame.size.height / 2) + 30 // 30px above center, below icon
1542
1545
  );
1543
1546
  [screenInfoLabel setFrameOrigin:labelCenter];
1544
1547
 
1545
1548
  NSPoint cancelButtonCenter = NSMakePoint(
1546
1549
  (screenFrame.size.width - [screenCancelButton frame].size.width) / 2,
1547
- buttonCenter.y - [selectButton frame].size.height - 20 // 20px below main button
1550
+ (screenFrame.size.height / 2) - 60 // 60px below center
1548
1551
  );
1549
1552
  [screenCancelButton setFrameOrigin:cancelButtonCenter];
1550
1553