Skip to content
This repository has been archived by the owner on May 22, 2020. It is now read-only.

Commit

Permalink
destroy check and nicer logic
Browse files Browse the repository at this point in the history
  • Loading branch information
tomer-openfin committed Oct 7, 2019
1 parent c2fe001 commit 2bbacb8
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions src/browser/api/browser_view.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,37 +83,34 @@ export function show(ofView: OfView) {

export async function attach(ofView: OfView, toIdentity: Identity) {
const {view, target: previousTarget} = ofView;
if (view) {

if (view && ! view.isDestroyed()) {
const ofWin = getWindowByUuidName(toIdentity.uuid, toIdentity.name);
const oldWin = getWindowByUuidName(previousTarget.uuid, previousTarget.name);

if (!ofWin) {
throw new Error(`Could not locate target window ${toIdentity.uuid}/${toIdentity.name}`);
}
if (!oldWin) {
throw new Error(`Could not locate origin window ${previousTarget.uuid}/${previousTarget.name}`);
}

const oldwinMap = windowCloseListenerMap.get(oldWin);

if (previousTarget.name !== toIdentity.name) {
if (oldWin) {
if (oldWin) {
const oldWinMap = windowCloseListenerMap.get(oldWin);
if (previousTarget.name !== toIdentity.name) {
oldWin.browserWindow.removeBrowserView(view);
of_events.emit(route.window('view-detached', previousTarget.uuid, previousTarget.name), {
viewIdentity: {uuid: ofView.uuid, name: ofView.name},
target: toIdentity,
previousTarget
});
if (oldwinMap) {
const listener = oldwinMap.get(ofView);
if (oldWinMap) {
const listener = oldWinMap.get(ofView);
if (typeof listener === 'function') {
of_events.removeListener(route.window('closed', previousTarget.uuid, previousTarget.name), listener);
}
oldwinMap.delete(ofView);
oldWinMap.delete(ofView);
}
}
} else if (oldwinMap && oldwinMap.has(ofView)) {
return;
} else if (oldWinMap && oldWinMap.has(ofView)) {
return;
}
}

const bWin = ofWin.browserWindow;
Expand Down Expand Up @@ -142,6 +139,7 @@ export async function attach(ofView: OfView, toIdentity: Identity) {
});
}
}

export async function destroy (ofView: OfView) {
const {uuid, name, target, view} = ofView;
removeBrowserView(ofView);
Expand Down

0 comments on commit 2bbacb8

Please sign in to comment.