Merge pull request #6644 from electron/webcontents-is-focused-crash

Check view before checking top level native window
This commit is contained in:
Cheng Zhao 2016-07-29 11:08:11 +09:00 committed by GitHub
commit ea6e6dab8c
2 changed files with 5 additions and 3 deletions

View file

@ -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

View file

@ -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