@@ -20,7 +20,7 @@ led_strip.initialize = function (callback, scrollPosition) {
20
20
21
21
TABS . led_strip . functions = [ 'i' , 'w' , 'f' , 'a' , 't' , 'r' , 'c' , 'g' , 's' , 'b' , 'l' , 'o' , 'y' ] ;
22
22
TABS . led_strip . baseFuncs = [ 'c' , 'f' , 'a' , 'l' , 's' , 'g' , 'r' , 'p' , 'e' , 'u' ] ;
23
- TABS . led_strip . overlays = [ 't' , 'y' , 'o' , 'b' , 'v' , 'i' , 'w' ] ;
23
+ TABS . led_strip . overlays = [ 't' , 'y' , 'o' , 'x' , ' b', 'v' , 'i' , 'w' ] ;
24
24
25
25
if ( semver . lt ( FC . CONFIG . apiVersion , API_VERSION_1_46 ) ) {
26
26
TABS . led_strip . overlays = TABS . led_strip . overlays . filter ( x => x !== 'y' ) ;
@@ -456,6 +456,7 @@ led_strip.initialize = function (callback, scrollPosition) {
456
456
case 't' :
457
457
case 'y' :
458
458
case 'o' :
459
+ case 'x' :
459
460
case 's' :
460
461
if ( areModifiersActive ( `function-${ f } ` ) )
461
462
p . addClass ( `function-${ letter } ` ) ;
@@ -489,28 +490,46 @@ led_strip.initialize = function (callback, scrollPosition) {
489
490
return $ ( that ) . is ( ':checked' ) ;
490
491
}
491
492
493
+ // Disable all other functions except the one being activated
494
+ function disableOtherFunctions ( activeFunction ) {
495
+ const functions = [ '.function-o' , '.function-b' , '.function-x' ] ;
496
+
497
+ functions . forEach ( func => {
498
+ if ( ! activeFunction . is ( func ) ) {
499
+ const checkbox = $ ( `.checkbox ${ func } ` ) ;
500
+ if ( checkbox . is ( ':checked' ) ) {
501
+ checkbox . prop ( 'checked' , false ) ;
502
+ checkbox . trigger ( 'change' ) ;
503
+ toggleSwitch ( checkbox , func . slice ( - 1 ) ) ; // Pass the last character as the identifier
504
+ }
505
+ }
506
+ } ) ;
507
+ }
508
+
492
509
// UI: check-box toggle
493
510
$ ( '.checkbox' ) . on ( 'change' , function ( e ) {
494
511
if ( e . originalEvent ) {
495
512
// user-triggered event
496
513
const that = $ ( this ) . find ( 'input' ) ;
497
514
498
- //disable Blink always or Larson scanner, both functions are not working properly at the same time
499
- if ( that . is ( '.function-o' ) ) {
500
- const blink = $ ( '.checkbox .function-b' ) ;
501
- if ( blink . is ( ':checked' ) ) {
502
- blink . prop ( 'checked' , false ) ;
503
- blink . trigger ( 'change' ) ;
504
- toggleSwitch ( blink , 'b' ) ;
515
+ // Event handlers for each function
516
+ $ ( '.checkbox .function-o' ) . on ( 'change' , function ( ) {
517
+ if ( $ ( this ) . is ( ':checked' ) ) {
518
+ disableOtherFunctions ( $ ( this ) ) ;
519
+ }
520
+ } ) ;
521
+
522
+ $ ( '.checkbox .function-b' ) . on ( 'change' , function ( ) {
523
+ if ( $ ( this ) . is ( ':checked' ) ) {
524
+ disableOtherFunctions ( $ ( this ) ) ;
505
525
}
506
- } else if ( that . is ( '.function-b' ) ) {
507
- const larson = $ ( '.checkbox .function-o' ) ;
508
- if ( $ ( '.checkbox .function-o' ) . is ( ':checked' ) ) {
509
- larson . prop ( 'checked' , false ) ;
510
- larson . trigger ( 'change' ) ;
511
- toggleSwitch ( larson , 'o' ) ;
526
+ } ) ;
527
+
528
+ $ ( '.checkbox .function-x' ) . on ( 'change' , function ( ) {
529
+ if ( $ ( this ) . is ( ':checked' ) ) {
530
+ disableOtherFunctions ( $ ( this ) ) ;
512
531
}
513
- }
532
+ } ) ;
514
533
515
534
//Change Rainbow slider visibility
516
535
if ( that . is ( '.function-y' ) ) {
@@ -827,6 +846,7 @@ led_strip.initialize = function (callback, scrollPosition) {
827
846
case "function-r" :
828
847
case "function-y" :
829
848
case "function-o" :
849
+ case "function-x" :
830
850
case "function-b" :
831
851
case "function-g" :
832
852
return true ;
0 commit comments