@@ -13,12 +13,14 @@ CloudPebble.Sidebar = (function() {
1313 var pane = $ ( '#main-pane' ) ;
1414
1515 var suspend_function = pane . data ( 'pane-suspend-function' ) ;
16+
1617 if ( suspend_function ) suspend_function ( ) ;
1718
1819 var list_entry = $ ( '#sidebar-pane-' + pane_id ) ;
1920 if ( list_entry ) {
2021 list_entry . removeClass ( 'active' ) ;
2122 }
23+
2224 suspended_panes [ pane_id ] = pane ;
2325 pane . detach ( ) ;
2426 // Create a new empty one.
@@ -40,7 +42,10 @@ CloudPebble.Sidebar = (function() {
4042 } ;
4143
4244 var refocus_pane = function ( pane ) {
43- pane . find ( '*[autofocus]' ) . first ( ) . focus ( ) ;
45+ setTimeout ( function ( ) {
46+ var previous_focus = pane . data ( 'previous-focus' ) ;
47+ ( previous_focus || pane . find ( '*[autofocus]' ) . first ( ) . focus ( ) ) . focus ( ) ;
48+ } , 50 ) ;
4449 } ;
4550
4651 var restore_suspended_pane = function ( id ) {
@@ -59,7 +64,7 @@ CloudPebble.Sidebar = (function() {
5964 pane . data ( 'pane-restore-function' ) ( ) ;
6065 }
6166
62- refocus_pane ( pane ) ;
67+ refocus_pane ( $ ( '#main- pane' ) ) ;
6368
6469 return true ;
6570 }
@@ -68,7 +73,7 @@ CloudPebble.Sidebar = (function() {
6873
6974 var set_main_pane = function ( pane , id , restore_function , destroy_function ) {
7075 $ ( '#main-pane' ) . append ( pane ) . data ( 'pane-id' , id ) ;
71- refocus_pane ( pane ) ;
76+ refocus_pane ( $ ( '#main- pane' ) ) ;
7277 if ( restore_function ) {
7378 $ ( '#main-pane' ) . data ( 'pane-restore-function' , restore_function ) ;
7479 }
@@ -162,6 +167,11 @@ CloudPebble.Sidebar = (function() {
162167 $ ( '#sidebar-pane-github > a' ) . click ( CloudPebble . GitHub . Show ) ;
163168 $ ( '#sidebar-pane-timeline > a' ) . click ( CloudPebble . Timeline . show ) ;
164169 $ ( '#new-source-file' ) . click ( CloudPebble . Editor . Create ) ;
170+
171+ $ ( '#pane-parent' ) . on ( 'focusin' , '#main-pane *' , _ . debounce ( function ( e ) {
172+ $ ( '#main-pane' ) . data ( 'previous-focus' , $ ( e . target ) ) ;
173+ } , 1 ) ) ;
174+
165175 init ( ) ;
166176 } ,
167177 SetPopover : function ( pane_id , title , content ) {
0 commit comments