Merge pull request #6644 from electron/webcontents-is-focused-crash
Check view before checking top level native window
This commit is contained in:
commit
ea6e6dab8c
2 changed files with 5 additions and 3 deletions
|
@ -743,7 +743,7 @@ bool WebContents::OnMessageReceived(const IPC::Message& message) {
|
|||
}
|
||||
|
||||
// There are three ways of destroying a webContents:
|
||||
// 1. call webContents.destory();
|
||||
// 1. call webContents.destroy();
|
||||
// 2. garbage collection;
|
||||
// 3. user closes the window of webContents;
|
||||
// For webview only #1 will happen, for BrowserWindow both #1 and #3 may
|
||||
|
|
|
@ -13,6 +13,9 @@ namespace atom {
|
|||
namespace api {
|
||||
|
||||
bool WebContents::IsFocused() const {
|
||||
auto view = web_contents()->GetRenderWidgetHostView();
|
||||
if (!view) return false;
|
||||
|
||||
if (GetType() != BACKGROUND_PAGE) {
|
||||
auto window = web_contents()->GetTopLevelNativeWindow();
|
||||
// On Mac the render widget host view does not lose focus when the window
|
||||
|
@ -21,8 +24,7 @@ bool WebContents::IsFocused() const {
|
|||
return false;
|
||||
}
|
||||
|
||||
auto view = web_contents()->GetRenderWidgetHostView();
|
||||
return view && view->HasFocus();
|
||||
return view->HasFocus();
|
||||
}
|
||||
|
||||
} // namespace api
|
||||
|
|
Loading…
Reference in a new issue