@@ -13,12 +13,14 @@ CloudPebble.Sidebar = (function() {
13
13
var pane = $ ( '#main-pane' ) ;
14
14
15
15
var suspend_function = pane . data ( 'pane-suspend-function' ) ;
16
+
16
17
if ( suspend_function ) suspend_function ( ) ;
17
18
18
19
var list_entry = $ ( '#sidebar-pane-' + pane_id ) ;
19
20
if ( list_entry ) {
20
21
list_entry . removeClass ( 'active' ) ;
21
22
}
23
+
22
24
suspended_panes [ pane_id ] = pane ;
23
25
pane . detach ( ) ;
24
26
// Create a new empty one.
@@ -40,7 +42,10 @@ CloudPebble.Sidebar = (function() {
40
42
} ;
41
43
42
44
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 ) ;
44
49
} ;
45
50
46
51
var restore_suspended_pane = function ( id ) {
@@ -59,7 +64,7 @@ CloudPebble.Sidebar = (function() {
59
64
pane . data ( 'pane-restore-function' ) ( ) ;
60
65
}
61
66
62
- refocus_pane ( pane ) ;
67
+ refocus_pane ( $ ( '#main- pane' ) ) ;
63
68
64
69
return true ;
65
70
}
@@ -68,7 +73,7 @@ CloudPebble.Sidebar = (function() {
68
73
69
74
var set_main_pane = function ( pane , id , restore_function , destroy_function ) {
70
75
$ ( '#main-pane' ) . append ( pane ) . data ( 'pane-id' , id ) ;
71
- refocus_pane ( pane ) ;
76
+ refocus_pane ( $ ( '#main- pane' ) ) ;
72
77
if ( restore_function ) {
73
78
$ ( '#main-pane' ) . data ( 'pane-restore-function' , restore_function ) ;
74
79
}
@@ -162,6 +167,11 @@ CloudPebble.Sidebar = (function() {
162
167
$ ( '#sidebar-pane-github > a' ) . click ( CloudPebble . GitHub . Show ) ;
163
168
$ ( '#sidebar-pane-timeline > a' ) . click ( CloudPebble . Timeline . show ) ;
164
169
$ ( '#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
+
165
175
init ( ) ;
166
176
} ,
167
177
SetPopover : function ( pane_id , title , content ) {
0 commit comments