@@ -482,22 +482,29 @@ const topVisibility: JupyterFrontEndPlugin<void> = {
482482 execute : ( ) => {
483483 top . setHidden ( top . isVisible ) ;
484484 if ( settingRegistry ) {
485- void settingRegistry . set ( pluginId , 'visible' , top . isVisible ) ;
485+ void settingRegistry . set (
486+ pluginId ,
487+ 'visible' ,
488+ top . isVisible ? 'yes' : 'no'
489+ ) ;
486490 }
487491 } ,
488492 isToggled : ( ) => top . isVisible ,
489493 } ) ;
490494
491- let settingsOverride = false ;
495+ let adjustToScreen = false ;
492496
493497 if ( settingRegistry ) {
494498 const loadSettings = settingRegistry . load ( pluginId ) ;
495499 const updateSettings = ( settings : ISettingRegistry . ISettings ) : void => {
496- const visible = settings . get ( 'visible' ) . composite ;
500+ // 'visible' property from user preferences or default settings
501+ let visible = settings . get ( 'visible' ) . composite ;
497502 if ( settings . user . visible !== undefined ) {
498- settingsOverride = true ;
499- top . setHidden ( ! visible ) ;
503+ visible = settings . user . visible ;
500504 }
505+ top . setHidden ( visible === 'no' ) ;
506+ // adjust to screen from user preferences or default settings
507+ adjustToScreen = visible === 'automatic' ;
501508 } ;
502509
503510 Promise . all ( [ loadSettings , app . restored ] )
@@ -517,7 +524,7 @@ const topVisibility: JupyterFrontEndPlugin<void> = {
517524 }
518525
519526 const onChanged = ( ) : void => {
520- if ( settingsOverride ) {
527+ if ( ! adjustToScreen ) {
521528 return ;
522529 }
523530 if ( app . format === 'desktop' ) {
0 commit comments