node-mac-recorder 2.5.5 → 2.5.7

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.5.5",
3
+ "version": "2.5.7",
4
4
  "description": "Native macOS screen recording package for Node.js applications",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -59,6 +59,9 @@ bool hideScreenRecordingPreview();
59
59
  if (self) {
60
60
  self.wantsLayer = YES;
61
61
  self.layer.backgroundColor = [[NSColor clearColor] CGColor];
62
+ // Ensure no borders or decorations
63
+ self.layer.borderWidth = 0.0;
64
+ self.layer.cornerRadius = 0.0;
62
65
  }
63
66
  return self;
64
67
  }
@@ -72,6 +75,7 @@ bool hideScreenRecordingPreview();
72
75
  [[NSColor colorWithRed:0.5 green:0.3 blue:0.8 alpha:0.25] setFill];
73
76
  NSRectFill(self.bounds);
74
77
 
78
+ // Ensure no borders or frames are drawn
75
79
  // Text will be handled by separate label above button
76
80
  }
77
81
 
@@ -89,6 +93,9 @@ bool hideScreenRecordingPreview();
89
93
  if (self) {
90
94
  self.wantsLayer = YES;
91
95
  self.layer.backgroundColor = [[NSColor clearColor] CGColor];
96
+ // Ensure no borders or decorations
97
+ self.layer.borderWidth = 0.0;
98
+ self.layer.cornerRadius = 0.0;
92
99
  }
93
100
  return self;
94
101
  }
@@ -141,6 +148,9 @@ bool hideScreenRecordingPreview();
141
148
  if (self) {
142
149
  self.wantsLayer = YES;
143
150
  self.layer.backgroundColor = [[NSColor clearColor] CGColor];
151
+ // Ensure no borders or decorations
152
+ self.layer.borderWidth = 0.0;
153
+ self.layer.cornerRadius = 0.0;
144
154
  }
145
155
  return self;
146
156
  }
@@ -151,6 +161,7 @@ bool hideScreenRecordingPreview();
151
161
  if (!self.screenInfo) return;
152
162
 
153
163
  // Background with transparency - purple tone (no border)
164
+ // Ensure no borders or frames are drawn
154
165
  [[NSColor colorWithRed:0.5 green:0.3 blue:0.8 alpha:0.3] setFill];
155
166
  NSRectFill(self.bounds);
156
167
 
@@ -712,6 +723,17 @@ bool showRecordingPreview(NSDictionary *windowInfo) {
712
723
  [g_recordingPreviewWindow setAlphaValue:1.0];
713
724
  [g_recordingPreviewWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
714
725
 
726
+ // Remove any default window decorations and borders
727
+ [g_recordingPreviewWindow setTitlebarAppearsTransparent:YES];
728
+ [g_recordingPreviewWindow setTitleVisibility:NSWindowTitleHidden];
729
+ [g_recordingPreviewWindow setMovable:NO];
730
+ [g_recordingPreviewWindow setMovableByWindowBackground:NO];
731
+
732
+ // Additional window styling to completely remove borders
733
+ [g_recordingPreviewWindow setToolbar:nil];
734
+ [g_recordingPreviewWindow setShowsResizeIndicator:NO];
735
+ [g_recordingPreviewWindow setShowsToolbarButton:NO];
736
+
715
737
  // Create preview view
716
738
  g_recordingPreviewView = [[RecordingPreviewView alloc] initWithFrame:screenFrame];
717
739
  [(RecordingPreviewView *)g_recordingPreviewView setRecordingWindowInfo:windowInfo];
@@ -819,11 +841,24 @@ bool startScreenSelection() {
819
841
  [overlayWindow setAlphaValue:1.0];
820
842
  [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
821
843
 
844
+ // Remove any default window decorations and borders
845
+ [overlayWindow setTitlebarAppearsTransparent:YES];
846
+ [overlayWindow setTitleVisibility:NSWindowTitleHidden];
847
+ [overlayWindow setMovable:NO];
848
+ [overlayWindow setMovableByWindowBackground:NO];
849
+
850
+
851
+
822
852
  // Create overlay view
823
853
  ScreenSelectorOverlayView *overlayView = [[ScreenSelectorOverlayView alloc] initWithFrame:screenFrame];
824
854
  [overlayView setScreenInfo:screenInfo];
825
855
  [overlayWindow setContentView:overlayView];
826
856
 
857
+ // Additional window styling to completely remove borders
858
+ [overlayWindow setToolbar:nil];
859
+ [overlayWindow setShowsResizeIndicator:NO];
860
+ [overlayWindow setShowsToolbarButton:NO];
861
+
827
862
  // Create select button with more padding
828
863
  NSButton *selectButton = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 200, 60)];
829
864
  [selectButton setTitle:@"Start Record"];
@@ -838,6 +873,12 @@ bool startScreenSelection() {
838
873
  [selectButton.layer setCornerRadius:8.0];
839
874
  [selectButton.layer setBorderWidth:0.0];
840
875
 
876
+ // Remove all button borders and decorations
877
+ [selectButton.layer setShadowOpacity:0.0];
878
+ [selectButton.layer setShadowRadius:0.0];
879
+ [selectButton.layer setShadowOffset:NSMakeSize(0, 0)];
880
+ [selectButton.layer setMasksToBounds:YES];
881
+
841
882
  // Clean white text - normal weight
842
883
  [selectButton setFont:[NSFont systemFontOfSize:16 weight:NSFontWeightRegular]];
843
884
  [selectButton setTitle:@"Start Record"];
@@ -857,6 +898,10 @@ bool startScreenSelection() {
857
898
  [selectButton setTarget:g_delegate];
858
899
  [selectButton setAction:@selector(screenSelectButtonClicked:)];
859
900
 
901
+ // Remove focus ring and other default button behaviors
902
+ [selectButton setFocusRingType:NSFocusRingTypeNone];
903
+ [selectButton setShowsBorderOnlyWhileMouseInside:NO];
904
+
860
905
  // Create cancel button for screen selection
861
906
  NSButton *screenCancelButton = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 120, 40)];
862
907
  [screenCancelButton setTitle:@"Cancel"];
@@ -870,6 +915,12 @@ bool startScreenSelection() {
870
915
  [screenCancelButton.layer setCornerRadius:8.0];
871
916
  [screenCancelButton.layer setBorderWidth:0.0];
872
917
 
918
+ // Remove all button borders and decorations
919
+ [screenCancelButton.layer setShadowOpacity:0.0];
920
+ [screenCancelButton.layer setShadowRadius:0.0];
921
+ [screenCancelButton.layer setShadowOffset:NSMakeSize(0, 0)];
922
+ [screenCancelButton.layer setMasksToBounds:YES];
923
+
873
924
  // Clean white text for cancel button
874
925
  [screenCancelButton setFont:[NSFont systemFontOfSize:15 weight:NSFontWeightRegular]];
875
926
  NSMutableAttributedString *screenCancelTitleString = [[NSMutableAttributedString alloc]
@@ -882,6 +933,10 @@ bool startScreenSelection() {
882
933
  [screenCancelButton setTarget:g_delegate];
883
934
  [screenCancelButton setAction:@selector(cancelButtonClicked:)];
884
935
 
936
+ // Remove focus ring and other default button behaviors
937
+ [screenCancelButton setFocusRingType:NSFocusRingTypeNone];
938
+ [screenCancelButton setShowsBorderOnlyWhileMouseInside:NO];
939
+
885
940
  // Create info label for screen
886
941
  NSTextField *screenInfoLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, screenFrame.size.width - 40, 60)];
887
942
  [screenInfoLabel setEditable:NO];
@@ -1042,6 +1097,17 @@ bool showScreenRecordingPreview(NSDictionary *screenInfo) {
1042
1097
  [overlayWindow setAlphaValue:1.0];
1043
1098
  [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
1044
1099
 
1100
+ // Remove any default window decorations and borders
1101
+ [overlayWindow setTitlebarAppearsTransparent:YES];
1102
+ [overlayWindow setTitleVisibility:NSWindowTitleHidden];
1103
+ [overlayWindow setMovable:NO];
1104
+ [overlayWindow setMovableByWindowBackground:NO];
1105
+
1106
+ // Additional window styling to completely remove borders
1107
+ [overlayWindow setToolbar:nil];
1108
+ [overlayWindow setShowsResizeIndicator:NO];
1109
+ [overlayWindow setShowsToolbarButton:NO];
1110
+
1045
1111
  [overlayWindow orderFront:nil];
1046
1112
  [overlayWindow makeKeyAndOrderFront:nil];
1047
1113
 
@@ -1099,10 +1165,27 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1099
1165
  [g_overlayWindow setAlphaValue:1.0];
1100
1166
  [g_overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
1101
1167
 
1168
+ // Remove any default window decorations and borders
1169
+ [g_overlayWindow setTitlebarAppearsTransparent:YES];
1170
+ [g_overlayWindow setTitleVisibility:NSWindowTitleHidden];
1171
+ [g_overlayWindow setMovable:NO];
1172
+ [g_overlayWindow setMovableByWindowBackground:NO];
1173
+
1174
+ // Additional window styling to completely remove borders
1175
+ [g_overlayWindow setToolbar:nil];
1176
+ [g_overlayWindow setShowsResizeIndicator:NO];
1177
+ [g_overlayWindow setShowsToolbarButton:NO];
1178
+
1102
1179
  // Create overlay view
1103
1180
  g_overlayView = [[WindowSelectorOverlayView alloc] initWithFrame:initialFrame];
1104
1181
  [g_overlayWindow setContentView:g_overlayView];
1105
1182
 
1183
+ // Ensure view layer has no borders
1184
+ [g_overlayView setWantsLayer:YES];
1185
+ [g_overlayView.layer setBorderWidth:0.0];
1186
+ [g_overlayView.layer setCornerRadius:0.0];
1187
+ [g_overlayView.layer setMasksToBounds:YES];
1188
+
1106
1189
  // Create select button with purple theme
1107
1190
  g_selectButton = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 200, 60)];
1108
1191
  [g_selectButton setTitle:@"Start Record"];
@@ -1116,6 +1199,12 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1116
1199
  [g_selectButton.layer setCornerRadius:8.0];
1117
1200
  [g_selectButton.layer setBorderWidth:0.0];
1118
1201
 
1202
+ // Remove all button borders and decorations
1203
+ [g_selectButton.layer setShadowOpacity:0.0];
1204
+ [g_selectButton.layer setShadowRadius:0.0];
1205
+ [g_selectButton.layer setShadowOffset:NSMakeSize(0, 0)];
1206
+ [g_selectButton.layer setMasksToBounds:YES];
1207
+
1119
1208
  // Clean white text - normal weight
1120
1209
  NSMutableAttributedString *titleString = [[NSMutableAttributedString alloc]
1121
1210
  initWithString:[g_selectButton title]];
@@ -1129,6 +1218,10 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1129
1218
  [g_selectButton setTarget:g_delegate];
1130
1219
  [g_selectButton setAction:@selector(selectButtonClicked:)];
1131
1220
 
1221
+ // Remove focus ring and other default button behaviors
1222
+ [g_selectButton setFocusRingType:NSFocusRingTypeNone];
1223
+ [g_selectButton setShowsBorderOnlyWhileMouseInside:NO];
1224
+
1132
1225
  // Add select button directly to window (not view) for proper layering
1133
1226
  [g_overlayWindow.contentView addSubview:g_selectButton];
1134
1227
 
@@ -1145,6 +1238,12 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1145
1238
  [cancelButton.layer setCornerRadius:8.0];
1146
1239
  [cancelButton.layer setBorderWidth:0.0];
1147
1240
 
1241
+ // Remove all button borders and decorations
1242
+ [cancelButton.layer setShadowOpacity:0.0];
1243
+ [cancelButton.layer setShadowRadius:0.0];
1244
+ [cancelButton.layer setShadowOffset:NSMakeSize(0, 0)];
1245
+ [cancelButton.layer setMasksToBounds:YES];
1246
+
1148
1247
  // Clean white text for cancel button
1149
1248
  NSMutableAttributedString *cancelTitleString = [[NSMutableAttributedString alloc]
1150
1249
  initWithString:[cancelButton title]];
@@ -1156,6 +1255,10 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1156
1255
  [cancelButton setTarget:g_delegate];
1157
1256
  [cancelButton setAction:@selector(cancelButtonClicked:)];
1158
1257
 
1258
+ // Remove focus ring and other default button behaviors
1259
+ [cancelButton setFocusRingType:NSFocusRingTypeNone];
1260
+ [cancelButton setShowsBorderOnlyWhileMouseInside:NO];
1261
+
1159
1262
  // Add cancel button to window
1160
1263
  [g_overlayWindow.contentView addSubview:cancelButton];
1161
1264