@@ -2945,7 +2945,7 @@ function codeChange() {
29452945// protect unsaved code
29462946// if selected file is in current directory
29472947// but does not exist in the HTML
2948- function protectUnsavedCode ( ) {
2948+ async function protectUnsavedCode ( ) {
29492949
29502950 // map tree location
29512951 const [ user , repo , contents ] = treeLoc ;
@@ -2977,8 +2977,16 @@ function protectUnsavedCode() {
29772977 // if new version of selected file exists
29782978 if ( selectedElName !== null ) {
29792979
2980+ const scrollPos = selectedFile . scrollPos ;
2981+
29802982 // load file
2981- loadFileInHTML ( selectedElName , getAttr ( selectedElName , 'sha' ) ) ;
2983+ await loadFileInHTML ( selectedElName , getAttr ( selectedElName , 'sha' ) ) ;
2984+
2985+ // prevent bottom float disappearing on mobile
2986+ if ( isMobile ) lastScrollTop = scrollPos [ 1 ] ;
2987+
2988+ // scroll to pos in code
2989+ cd . scrollTo ( scrollPos [ 0 ] , scrollPos [ 1 ] ) ;
29822990
29832991 } else {
29842992
@@ -3025,7 +3033,7 @@ function protectUnsavedCode() {
30253033
30263034 // if selected file isn't loaded
30273035 if ( selectedFile . sha !== getAttr ( selectedElSha , 'sha' ) ) {
3028-
3036+
30293037 // load file
30303038 loadFileInHTML ( selectedElSha , getAttr ( selectedElSha , 'sha' ) ) ;
30313039
0 commit comments