@@ -472,6 +472,7 @@ var statusKeymap = null;
472472var statusIndent = null ;
473473var statusTheme = null ;
474474var statusSpellcheck = null ;
475+ var statusPreferences = null ;
475476
476477function getStatusBarTemplate ( callback ) {
477478 $ . get ( serverurl + '/views/statusbar.html' , function ( template ) {
@@ -495,6 +496,7 @@ function addStatusBar() {
495496 statusLength = statusBar . find ( '.status-length' ) ;
496497 statusTheme = statusBar . find ( '.status-theme' ) ;
497498 statusSpellcheck = statusBar . find ( '.status-spellcheck' ) ;
499+ statusPreferences = statusBar . find ( '.status-preferences' ) ;
498500 statusPanel = editor . addPanel ( statusBar [ 0 ] , {
499501 position : "bottom"
500502 } ) ;
@@ -503,6 +505,7 @@ function addStatusBar() {
503505 setKeymap ( ) ;
504506 setTheme ( ) ;
505507 setSpellcheck ( ) ;
508+ setPreferences ( ) ;
506509}
507510
508511function setIndent ( ) {
@@ -619,6 +622,8 @@ function setKeymap() {
619622 expires : 365
620623 } ) ;
621624 label . text ( keymap ) ;
625+ restoreOverrideEditorKeymap ( ) ;
626+ setOverrideBrowserKeymap ( ) ;
622627 }
623628 setKeymapLabel ( ) ;
624629
@@ -719,6 +724,50 @@ function setSpellcheck() {
719724 }
720725}
721726
727+ var jumpToAddressBarKeymapName = mac ? "Cmd-L" : "Ctrl-L" ;
728+ var jumpToAddressBarKeymapValue = null ;
729+ function resetEditorKeymapToBrowserKeymap ( ) {
730+ var keymap = editor . getOption ( 'keyMap' ) ;
731+ if ( ! jumpToAddressBarKeymapValue ) {
732+ jumpToAddressBarKeymapValue = CodeMirror . keyMap [ keymap ] [ jumpToAddressBarKeymapName ] ;
733+ delete CodeMirror . keyMap [ keymap ] [ jumpToAddressBarKeymapName ] ;
734+ }
735+ }
736+ function restoreOverrideEditorKeymap ( ) {
737+ var keymap = editor . getOption ( 'keyMap' ) ;
738+ if ( jumpToAddressBarKeymapValue ) {
739+ CodeMirror . keyMap [ keymap ] [ jumpToAddressBarKeymapName ] = jumpToAddressBarKeymapValue ;
740+ jumpToAddressBarKeymapValue = null ;
741+ }
742+ }
743+ function setOverrideBrowserKeymap ( ) {
744+ var overrideBrowserKeymap = $ ( '.ui-preferences-override-browser-keymap label > input[type="checkbox"]' ) ;
745+ if ( overrideBrowserKeymap . is ( ":checked" ) ) {
746+ Cookies . set ( 'preferences-override-browser-keymap' , true , {
747+ expires : 365
748+ } ) ;
749+ restoreOverrideEditorKeymap ( ) ;
750+ } else {
751+ Cookies . remove ( 'preferences-override-browser-keymap' ) ;
752+ resetEditorKeymapToBrowserKeymap ( ) ;
753+ }
754+ }
755+
756+ function setPreferences ( ) {
757+ var overrideBrowserKeymap = $ ( '.ui-preferences-override-browser-keymap label > input[type="checkbox"]' ) ;
758+ var cookieOverrideBrowserKeymap = Cookies . get ( 'preferences-override-browser-keymap' ) ;
759+ if ( cookieOverrideBrowserKeymap && cookieOverrideBrowserKeymap === "true" ) {
760+ overrideBrowserKeymap . prop ( 'checked' , true ) ;
761+ } else {
762+ overrideBrowserKeymap . prop ( 'checked' , false ) ;
763+ }
764+ setOverrideBrowserKeymap ( ) ;
765+
766+ overrideBrowserKeymap . change ( function ( ) {
767+ setOverrideBrowserKeymap ( ) ;
768+ } ) ;
769+ }
770+
722771var selection = null ;
723772
724773function updateStatusBar ( ) {
@@ -989,6 +1038,10 @@ $(document).ready(function () {
9891038 key ( 'ctrl+alt+b' , function ( e ) {
9901039 changeMode ( modeType . both ) ;
9911040 } ) ;
1041+ // toggle-dropdown
1042+ $ ( document ) . on ( 'click' , '.toggle-dropdown .dropdown-menu' , function ( e ) {
1043+ e . stopPropagation ( ) ;
1044+ } ) ;
9921045} ) ;
9931046//when page resize
9941047$ ( window ) . resize ( function ( ) {
0 commit comments