Skip to content

Commit 4ba6a5e

Browse files
committed
WPF - Add browser.IsPopup checks to the example LifespanHandler when using EXPERIMENTAL newBrowser method
Was hanging on exit before
1 parent 8c9dbb7 commit 4ba6a5e

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

CefSharp.Wpf.Example/Handlers/LifespanHandler.cs

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ bool ILifeSpanHandler.OnBeforePopup(IWebBrowser browserControl, IBrowser browser
5858
// //functionality that requires a parent window may not function correctly.
5959
// windowInfo.SetAsWindowless(handle, true);
6060

61-
// popup.Closed += (o, e) =>
61+
// popup.Closed += (o, e) =>
6262
// {
6363
// var w = o as Window;
6464
// if (w != null && w.Content is IWebBrowser)
@@ -77,17 +77,20 @@ bool ILifeSpanHandler.OnBeforePopup(IWebBrowser browserControl, IBrowser browser
7777
void ILifeSpanHandler.OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
7878
{
7979
//NOTE: This is experimental
80-
//var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
81-
82-
//chromiumWebBrowser.Dispatcher.Invoke(() =>
83-
//{
84-
// var owner = Window.GetWindow(chromiumWebBrowser);
80+
//if(browser.IsPopup)
81+
//{
82+
// var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
8583

86-
// if (owner != null && owner.Content == browserControl)
84+
// chromiumWebBrowser.Dispatcher.Invoke(() =>
8785
// {
88-
// owner.Show();
89-
// }
90-
//});
86+
// var owner = Window.GetWindow(chromiumWebBrowser);
87+
88+
// if (owner != null && owner.Content == browserControl)
89+
// {
90+
// owner.Show();
91+
// }
92+
// });
93+
//}
9194
}
9295

9396
bool ILifeSpanHandler.DoClose(IWebBrowser browserControl, IBrowser browser)
@@ -98,17 +101,20 @@ bool ILifeSpanHandler.DoClose(IWebBrowser browserControl, IBrowser browser)
98101
void ILifeSpanHandler.OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
99102
{
100103
//NOTE: This is experimental
101-
//var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
102-
103-
//chromiumWebBrowser.Dispatcher.Invoke(() =>
104-
//{
105-
// var owner = Window.GetWindow(chromiumWebBrowser);
104+
//if(!browser.IsDisposed && browser.IsPopup)
105+
//{
106+
// var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
106107

107-
// if (owner != null && owner.Content == browserControl)
108+
// chromiumWebBrowser.Dispatcher.Invoke(() =>
108109
// {
109-
// owner.Close();
110-
// }
111-
//});
110+
// var owner = Window.GetWindow(chromiumWebBrowser);
111+
112+
// if (owner != null && owner.Content == browserControl)
113+
// {
114+
// owner.Close();
115+
// }
116+
// });
117+
//}
112118
}
113119
}
114120
}

0 commit comments

Comments
 (0)