@@ -50,9 +50,6 @@ function getPlatform() {
50
50
}
51
51
52
52
var canSetVisibleOnAllWorkspaces = / ( m a c | l i n u x ) / . exec ( getPlatform ( ) ) ;
53
- var appWinEventsMap = {
54
- 'closed' : 'onClosed'
55
- } ;
56
53
57
54
var nwWinEventsMap = {
58
55
'minimize' : 'onMinimized' ,
@@ -73,7 +70,8 @@ var nwWrapEventsMap = {
73
70
var wrapEventsMapNewWin = {
74
71
'move' : 'onMove' ,
75
72
'focus' : 'onFocusChanged' ,
76
- 'blur' : 'onFocusChanged'
73
+ 'blur' : 'onFocusChanged' ,
74
+ 'closed' : 'onRemoved'
77
75
} ;
78
76
79
77
nw_internal . registerCustomHook ( function ( bindingsAPI ) {
@@ -223,6 +221,14 @@ NWWindow.prototype.on = function (event, callback, record) {
223
221
} ) ;
224
222
chrome . windows . onFocusChanged . addListener ( cbf ) ;
225
223
break ;
224
+ case 'closed' :
225
+ var cbr = wrap ( function ( windowId ) {
226
+ if ( self . cWindow . id === windowId )
227
+ return ;
228
+ callback . call ( self ) ;
229
+ } ) ;
230
+ chrome . windows . onRemoved . addListener ( cbr ) ;
231
+ break ;
226
232
case 'loaded' :
227
233
var g = wrap ( function ( tabId , changeInfo , tab ) {
228
234
if ( tab . windowId !== self . cWindow . id )
@@ -305,7 +311,7 @@ NWWindow.prototype.removeListener = function (event, callback) {
305
311
if ( wrapEventsMapNewWin . hasOwnProperty ( event ) ) {
306
312
for ( let l of chrome . windows [ wrapEventsMapNewWin [ event ] ] . getListeners ( ) ) {
307
313
if ( l . callback . listener && l . callback . listener === callback ) {
308
- this [ nwWrapEventsMap [ event ] ] . removeListener ( l . callback ) ;
314
+ chrome . windows [ wrapEventsMapNewWin [ event ] ] . removeListener ( l . callback ) ;
309
315
return this ;
310
316
}
311
317
}
0 commit comments