node-mac-recorder 2.10.21 → 2.10.22

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.21",
3
+ "version": "2.10.22",
4
4
  "description": "Native macOS screen recording package for Node.js applications",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -114,12 +114,12 @@ void updateScreenOverlays();
114
114
  CGFloat lineWidth;
115
115
 
116
116
  if (self.isToggled) {
117
- // Locked state: thicker border
117
+ // Locked state: same 1px border but different color
118
118
  fillColor = [NSColor colorWithRed:0.6 green:0.4 blue:0.9 alpha:0.4];
119
119
  strokeColor = [NSColor colorWithRed:0.45 green:0.25 blue:0.75 alpha:0.9];
120
- lineWidth = 3.0;
120
+ lineWidth = 1.0;
121
121
  } else {
122
- // Normal state: thin border
122
+ // Normal state: 1px border
123
123
  fillColor = [NSColor colorWithRed:0.6 green:0.4 blue:0.9 alpha:0.4];
124
124
  strokeColor = [NSColor whiteColor];
125
125
  lineWidth = 1.0;
@@ -933,7 +933,8 @@ void updateOverlay() {
933
933
  }
934
934
 
935
935
  [g_overlayWindow orderFront:nil];
936
- [g_overlayWindow makeKeyAndOrderFront:nil];
936
+ // DON'T make key - prevents focus ring
937
+ // [g_overlayWindow makeKeyAndOrderFront:nil];
937
938
 
938
939
  // Ensure subviews (except overlay view itself) have no borders after positioning
939
940
  for (NSView *subview in [g_overlayWindow.contentView subviews]) {
@@ -1054,7 +1055,7 @@ bool showRecordingPreview(NSDictionary *windowInfo) {
1054
1055
  [g_recordingPreviewWindow setAcceptsMouseMovedEvents:NO];
1055
1056
  [g_recordingPreviewWindow setHasShadow:NO];
1056
1057
  [g_recordingPreviewWindow setAlphaValue:1.0];
1057
- [g_recordingPreviewWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorIgnoresCycle];
1058
+ [g_recordingPreviewWindow setCollectionBehavior:NSWindowCollectionBehaviorTransient | NSWindowCollectionBehaviorIgnoresCycle];
1058
1059
 
1059
1060
  // Remove any default window decorations and borders
1060
1061
  [g_recordingPreviewWindow setTitlebarAppearsTransparent:YES];
@@ -1183,7 +1184,7 @@ void updateScreenOverlays() {
1183
1184
  // Ensure ALL overlays are visible, but active one is on top
1184
1185
  [overlayWindow orderFront:nil];
1185
1186
  if (isActiveScreen) {
1186
- [overlayWindow makeKeyAndOrderFront:nil];
1187
+ [overlayWindow orderFront:nil]; // Don't make key
1187
1188
  } else {
1188
1189
  [overlayWindow orderFront:nil]; // Keep inactive screens visible too
1189
1190
  }
@@ -1328,7 +1329,7 @@ bool startScreenSelection() {
1328
1329
  [overlayWindow setHasShadow:NO];
1329
1330
  [overlayWindow setAlphaValue:1.0];
1330
1331
  // Ensure window appears on all spaces and stays put - match g_overlayWindow
1331
- [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorIgnoresCycle];
1332
+ [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorTransient | NSWindowCollectionBehaviorIgnoresCycle];
1332
1333
 
1333
1334
  // Remove any default window decorations and borders
1334
1335
  [overlayWindow setTitlebarAppearsTransparent:YES];
@@ -1501,12 +1502,12 @@ bool startScreenSelection() {
1501
1502
  // Show overlay - different strategy for secondary screens
1502
1503
  if (i == 0) {
1503
1504
  // Primary screen
1504
- [overlayWindow makeKeyAndOrderFront:nil];
1505
+ [overlayWindow orderFront:nil]; // Don't make key
1505
1506
  // Primary screen overlay shown
1506
1507
  } else {
1507
1508
  // Secondary screens - more aggressive approach
1508
1509
  [overlayWindow orderFront:nil];
1509
- [overlayWindow makeKeyAndOrderFront:nil]; // Try makeKey too
1510
+ [overlayWindow orderFront:nil]; // Don't make key // Try makeKey too
1510
1511
  [overlayWindow setLevel:CGWindowLevelForKey(kCGMaximumWindowLevelKey)]; // Match g_overlayWindow level
1511
1512
 
1512
1513
  // Secondary screen overlay shown
@@ -1514,7 +1515,7 @@ bool startScreenSelection() {
1514
1515
  // Double-check with delayed re-show
1515
1516
  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
1516
1517
  [overlayWindow orderFront:nil];
1517
- [overlayWindow makeKeyAndOrderFront:nil];
1518
+ [overlayWindow orderFront:nil]; // Don't make key
1518
1519
  });
1519
1520
  }
1520
1521
 
@@ -1628,7 +1629,7 @@ bool showScreenRecordingPreview(NSDictionary *screenInfo) {
1628
1629
  // no border
1629
1630
  [overlayWindow setStyleMask:NSWindowStyleMaskBorderless];
1630
1631
  [overlayWindow setAlphaValue:1.0];
1631
- [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorIgnoresCycle];
1632
+ [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorTransient | NSWindowCollectionBehaviorIgnoresCycle];
1632
1633
 
1633
1634
 
1634
1635
  // Force content view to have no borders
@@ -1651,7 +1652,7 @@ bool showScreenRecordingPreview(NSDictionary *screenInfo) {
1651
1652
 
1652
1653
 
1653
1654
  [overlayWindow orderFront:nil];
1654
- [overlayWindow makeKeyAndOrderFront:nil];
1655
+ // [overlayWindow makeKeyAndOrderFront:nil];
1655
1656
 
1656
1657
  // Note: NSWindow doesn't have setWantsLayer method, only NSView does
1657
1658
 
@@ -1724,7 +1725,7 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1724
1725
  [g_overlayWindow setAcceptsMouseMovedEvents:YES];
1725
1726
  [g_overlayWindow setHasShadow:NO];
1726
1727
  [g_overlayWindow setAlphaValue:1.0];
1727
- [g_overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorFullScreenAuxiliary | NSWindowCollectionBehaviorIgnoresCycle];
1728
+ [g_overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorTransient | NSWindowCollectionBehaviorIgnoresCycle];
1728
1729
 
1729
1730
  // Remove any default window decorations and borders
1730
1731
  [g_overlayWindow setTitlebarAppearsTransparent:YES];