|
349 | 349 | var $capsWarning = $( '#caps-warning' ), |
350 | 350 | capsLockOn = false; |
351 | 351 |
|
352 | | - $input.on( 'keydown', function( e ) { |
353 | | - var ev = e.originalEvent || e; |
| 352 | + // Skip warning on macOS Safari + Firefox (they show native indicators). |
| 353 | + if ( isMac && ( isSafari || isFirefox ) ) { |
| 354 | + return; |
| 355 | + } |
| 356 | + |
| 357 | + $input.on( 'keydown', function( jqEvent ) { |
| 358 | + var event = jqEvent.originalEvent; |
354 | 359 |
|
355 | 360 | // Skip CapsLock key itself. |
356 | 361 | if ( ev.key === 'CapsLock' ) { |
357 | | - if (capsLockOn) { |
| 362 | + if ( capsLockOn ) { |
358 | 363 | capsLockOn = false; |
359 | 364 | $capsWarning.hide(); |
360 | 365 | } |
|
363 | 368 |
|
364 | 369 | // Skip if key is not a printable character. |
365 | 370 | // Key length > 1 usually means non-printable (e.g., "Enter", "Tab"). |
366 | | - if ( ev.ctrlKey || ev.metaKey || ev.altKey || ! ev.key || ev.key.length !== 1 ) { |
| 371 | + if ( event.ctrlKey || event.metaKey || event.altKey || ! event.key || event.key.length !== 1 ) { |
367 | 372 | return; |
368 | 373 | } |
369 | 374 |
|
370 | | - var state = isCapsLockOn( ev ); |
| 375 | + var state = isCapsLockOn( event ); |
371 | 376 |
|
372 | 377 | // Only react when the state changes. |
373 | 378 | if ( state !== capsLockOn ) { |
|
398 | 403 | * |
399 | 404 | * @return {boolean} True if Caps Lock is on, false otherwise. |
400 | 405 | */ |
401 | | - function isCapsLockOn( e ) { |
402 | | - // Skip warning on macOS Safari + Firefox (they show native indicators). |
403 | | - if ( isMac && ( isSafari || isFirefox ) ) { |
404 | | - return false; |
405 | | - } |
406 | | - |
407 | | - if ( typeof e.getModifierState === 'function' ) { |
408 | | - return e.getModifierState( 'CapsLock' ); |
409 | | - } |
| 406 | + function isCapsLockOn( event ) { |
| 407 | + return event.getModifierState( 'CapsLock' ); |
410 | 408 | } |
411 | 409 |
|
412 | 410 | function showOrHideWeakPasswordCheckbox() { |
|
0 commit comments