node-mac-recorder 2.5.9 → 2.5.10

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.9",
3
+ "version": "2.5.10",
4
4
  "description": "Native macOS screen recording package for Node.js applications",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -75,8 +75,7 @@ bool hideScreenRecordingPreview();
75
75
  }
76
76
 
77
77
  - (void)drawRect:(NSRect)dirtyRect {
78
- // Don't call super to avoid any default drawing
79
- // [super drawRect:dirtyRect];
78
+ [super drawRect:dirtyRect];
80
79
 
81
80
  if (!self.windowInfo) return;
82
81
 
@@ -181,8 +180,7 @@ bool hideScreenRecordingPreview();
181
180
  }
182
181
 
183
182
  - (void)drawRect:(NSRect)dirtyRect {
184
- // Don't call super to avoid any default drawing
185
- // [super drawRect:dirtyRect];
183
+ [super drawRect:dirtyRect];
186
184
 
187
185
  if (!self.screenInfo) return;
188
186
 
@@ -549,7 +547,7 @@ void updateOverlay() {
549
547
  [appIconView setWantsLayer:YES];
550
548
  [appIconView.layer setCornerRadius:8.0];
551
549
  [appIconView.layer setMasksToBounds:YES];
552
- [appIconView.layer setBackgroundColor:[[NSColor colorWithRed:0.2 green:0.2 blue:0.1 alpha:0.3] CGColor]]; // Debug background
550
+ [appIconView.layer setBackgroundColor:[[NSColor colorWithRed:0.2 green:0.2 blue:0.2 alpha:0.3] CGColor]]; // Debug background
553
551
  [g_overlayWindow.contentView addSubview:appIconView];
554
552
  NSLog(@"🖼️ Created app icon view at frame: (%.0f, %.0f, %.0f, %.0f)",
555
553
  appIconView.frame.origin.x, appIconView.frame.origin.y,
@@ -749,6 +747,13 @@ bool showRecordingPreview(NSDictionary *windowInfo) {
749
747
  [g_recordingPreviewWindow setAlphaValue:1.0];
750
748
  [g_recordingPreviewWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
751
749
 
750
+ // Ensure window layer has no borders or decorations
751
+ [g_recordingPreviewWindow setWantsLayer:YES];
752
+ [g_recordingPreviewWindow.layer setBorderWidth:0.0];
753
+ [g_recordingPreviewWindow.layer setCornerRadius:0.0];
754
+ [g_recordingPreviewWindow.layer setBorderColor:[[NSColor clearColor] CGColor]];
755
+ [g_recordingPreviewWindow.layer setMasksToBounds:YES];
756
+
752
757
  // Remove any default window decorations and borders
753
758
  [g_recordingPreviewWindow setTitlebarAppearsTransparent:YES];
754
759
  [g_recordingPreviewWindow setTitleVisibility:NSWindowTitleHidden];
@@ -867,6 +872,13 @@ bool startScreenSelection() {
867
872
  [overlayWindow setAlphaValue:1.0];
868
873
  [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
869
874
 
875
+ // Ensure window layer has no borders or decorations
876
+ [overlayWindow setWantsLayer:YES];
877
+ [overlayWindow.layer setBorderWidth:0.0];
878
+ [overlayWindow.layer setCornerRadius:0.0];
879
+ [overlayWindow.layer setBorderColor:[[NSColor clearColor] CGColor]];
880
+ [overlayWindow.layer setMasksToBounds:YES];
881
+
870
882
  // Remove any default window decorations and borders
871
883
  [overlayWindow setTitlebarAppearsTransparent:YES];
872
884
  [overlayWindow setTitleVisibility:NSWindowTitleHidden];
@@ -895,7 +907,7 @@ bool startScreenSelection() {
895
907
 
896
908
  // Modern button styling with purple tone
897
909
  [selectButton setWantsLayer:YES];
898
- [selectButton.layer setBackgroundColor:[[NSColor colorWithRed:0.55 green:0.3 blue:0.3 alpha:0.95] CGColor]];
910
+ [selectButton.layer setBackgroundColor:[[NSColor colorWithRed:0.55 green:0.3 blue:0.75 alpha:0.95] CGColor]];
899
911
  [selectButton.layer setCornerRadius:8.0];
900
912
  [selectButton.layer setBorderWidth:0.0];
901
913
 
@@ -924,9 +936,13 @@ bool startScreenSelection() {
924
936
  [selectButton setTarget:g_delegate];
925
937
  [selectButton setAction:@selector(screenSelectButtonClicked:)];
926
938
 
927
- // Remove focus ring and other default button behaviors
928
- [selectButton setFocusRingType:NSFocusRingTypeNone];
929
- [selectButton setShowsBorderOnlyWhileMouseInside:NO];
939
+ // Remove focus ring and other default button behaviors
940
+ [selectButton setFocusRingType:NSFocusRingTypeNone];
941
+ [selectButton setShowsBorderOnlyMouseInside:NO];
942
+ [selectButton setBezelStyle:NSBezelStyleTexturedSquare];
943
+ [selectButton setKeyEquivalent:@""];
944
+ [selectButton setRefusesFirstResponder:YES];
945
+ [selectButton setState:NSControlStateValueOff];
930
946
 
931
947
  // Create cancel button for screen selection
932
948
  NSButton *screenCancelButton = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 120, 40)];
@@ -937,7 +953,7 @@ bool startScreenSelection() {
937
953
 
938
954
  // Modern cancel button styling - darker gray, clean
939
955
  [screenCancelButton setWantsLayer:YES];
940
- [screenCancelButton.layer setBackgroundColor:[[NSColor colorWithRed:0.35 green:0.35 blue:0.2 alpha:0.9] CGColor]];
956
+ [screenCancelButton.layer setBackgroundColor:[[NSColor colorWithRed:0.35 green:0.35 blue:0.4 alpha:0.9] CGColor]];
941
957
  [screenCancelButton.layer setCornerRadius:8.0];
942
958
  [screenCancelButton.layer setBorderWidth:0.0];
943
959
 
@@ -961,7 +977,11 @@ bool startScreenSelection() {
961
977
 
962
978
  // Remove focus ring and other default button behaviors
963
979
  [screenCancelButton setFocusRingType:NSFocusRingTypeNone];
964
- [screenCancelButton setShowsBorderOnlyWhileMouseInside:NO];
980
+ [screenCancelButton setShowsBorderOnlyMouseInside:NO];
981
+ [screenCancelButton setBezelStyle:NSBezelStyleTexturedSquare];
982
+ [screenCancelButton setKeyEquivalent:@""];
983
+ [screenCancelButton setRefusesFirstResponder:YES];
984
+ [screenCancelButton setState:NSControlStateValueOff];
965
985
 
966
986
  // Create info label for screen
967
987
  NSTextField *screenInfoLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, screenFrame.size.width - 40, 60)];
@@ -1123,6 +1143,13 @@ bool showScreenRecordingPreview(NSDictionary *screenInfo) {
1123
1143
  [overlayWindow setAlphaValue:1.0];
1124
1144
  [overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
1125
1145
 
1146
+ // Ensure window layer has no borders or decorations
1147
+ [overlayWindow setWantsLayer:YES];
1148
+ [overlayWindow.layer setBorderWidth:0.0];
1149
+ [overlayWindow.layer setCornerRadius:0.0];
1150
+ [overlayWindow.layer setBorderColor:[[NSColor clearColor] CGColor]];
1151
+ [overlayWindow.layer setMasksToBounds:YES];
1152
+
1126
1153
  // Remove any default window decorations and borders
1127
1154
  [overlayWindow setTitlebarAppearsTransparent:YES];
1128
1155
  [overlayWindow setTitleVisibility:NSWindowTitleHidden];
@@ -1191,6 +1218,13 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1191
1218
  [g_overlayWindow setAlphaValue:1.0];
1192
1219
  [g_overlayWindow setCollectionBehavior:NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces];
1193
1220
 
1221
+ // Ensure window layer has no borders or decorations
1222
+ [g_overlayWindow setWantsLayer:YES];
1223
+ [g_overlayWindow.layer setBorderWidth:0.0];
1224
+ [g_overlayWindow.layer setCornerRadius:0.0];
1225
+ [g_overlayWindow.layer setBorderColor:[[NSColor clearColor] CGColor]];
1226
+ [g_overlayWindow.layer setMasksToBounds:YES];
1227
+
1194
1228
  // Remove any default window decorations and borders
1195
1229
  [g_overlayWindow setTitlebarAppearsTransparent:YES];
1196
1230
  [g_overlayWindow setTitleVisibility:NSWindowTitleHidden];
@@ -1210,8 +1244,8 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1210
1244
  [g_overlayView setWantsLayer:YES];
1211
1245
  [g_overlayView.layer setBorderWidth:0.0];
1212
1246
  [g_overlayView.layer setCornerRadius:0.0];
1213
- [g_overlayView.layer setMasksToBounds:YES];
1214
1247
  [g_overlayView.layer setBorderColor:[[NSColor clearColor] CGColor]];
1248
+ [g_overlayView.layer setMasksToBounds:YES];
1215
1249
  [g_overlayView.layer setShadowOpacity:0.0];
1216
1250
  [g_overlayView.layer setShadowRadius:0.0];
1217
1251
  [g_overlayView.layer setShadowOffset:NSMakeSize(0, 0)];
@@ -1225,7 +1259,7 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1225
1259
 
1226
1260
  // Modern button styling with purple tone
1227
1261
  [g_selectButton setWantsLayer:YES];
1228
- [g_selectButton.layer setBackgroundColor:[[NSColor colorWithRed:0.55 green:0.3 blue:0.3 alpha:0.95] CGColor]];
1262
+ [g_selectButton.layer setBackgroundColor:[[NSColor colorWithRed:0.55 green:0.3 blue:0.75 alpha:0.95] CGColor]];
1229
1263
  [g_selectButton.layer setCornerRadius:8.0];
1230
1264
  [g_selectButton.layer setBorderWidth:0.0];
1231
1265
 
@@ -1250,7 +1284,11 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1250
1284
 
1251
1285
  // Remove focus ring and other default button behaviors
1252
1286
  [g_selectButton setFocusRingType:NSFocusRingTypeNone];
1253
- [g_selectButton setShowsBorderOnlyWhileMouseInside:NO];
1287
+ [g_selectButton setShowsBorderOnlyMouseInside:NO];
1288
+ [g_selectButton setBezelStyle:NSBezelStyleTexturedSquare];
1289
+ [g_selectButton setKeyEquivalent:@""];
1290
+ [g_selectButton setRefusesFirstResponder:YES];
1291
+ [g_selectButton setState:NSControlStateValueOff];
1254
1292
 
1255
1293
  // Add select button directly to window (not view) for proper layering
1256
1294
  [g_overlayWindow.contentView addSubview:g_selectButton];
@@ -1264,7 +1302,7 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1264
1302
 
1265
1303
  // Modern cancel button styling - darker gray, clean
1266
1304
  [cancelButton setWantsLayer:YES];
1267
- [cancelButton.layer setBackgroundColor:[[NSColor colorWithRed:0.35 green:0.35 blue:0.2 alpha:0.9] CGColor]];
1305
+ [cancelButton.layer setBackgroundColor:[[NSColor colorWithRed:0.35 green:0.35 blue:0.4 alpha:0.9] CGColor]];
1268
1306
  [cancelButton.layer setCornerRadius:8.0];
1269
1307
  [cancelButton.layer setBorderWidth:0.0];
1270
1308
 
@@ -1287,7 +1325,11 @@ Napi::Value StartWindowSelection(const Napi::CallbackInfo& info) {
1287
1325
 
1288
1326
  // Remove focus ring and other default button behaviors
1289
1327
  [cancelButton setFocusRingType:NSFocusRingTypeNone];
1290
- [cancelButton setShowsBorderOnlyWhileMouseInside:NO];
1328
+ [cancelButton setShowsBorderOnlyMouseInside:NO];
1329
+ [cancelButton setBezelStyle:NSBezelStyleTexturedSquare];
1330
+ [cancelButton setKeyEquivalent:@""];
1331
+ [cancelButton setRefusesFirstResponder:YES];
1332
+ [cancelButton setState:NSControlStateValueOff];
1291
1333
 
1292
1334
  // Add cancel button to window
1293
1335
  [g_overlayWindow.contentView addSubview:cancelButton];