Skip to content

Commit 2c755a0

Browse files
committed
Merge pull request #485 from amaitland/fix/dispose-nullpointer
Fixed #464 NullReferenceException when browser is disposed while focused
2 parents 182bcb9 + f07b0f6 commit 2c755a0

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

CefSharp.Wpf/ChromiumWebBrowser.cs

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -777,12 +777,18 @@ private void UpdateTooltip(string text)
777777

778778
private void OnGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
779779
{
780-
managedCefBrowserAdapter.SendFocusEvent(true);
780+
if (managedCefBrowserAdapter != null)
781+
{
782+
managedCefBrowserAdapter.SendFocusEvent(true);
783+
}
781784
}
782785

783786
private void OnLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
784787
{
785-
managedCefBrowserAdapter.SendFocusEvent(false);
788+
if (managedCefBrowserAdapter != null)
789+
{
790+
managedCefBrowserAdapter.SendFocusEvent(false);
791+
}
786792
}
787793

788794
protected override void OnPreviewKeyDown(KeyEventArgs e)
@@ -842,19 +848,25 @@ protected override void OnMouseMove(MouseEventArgs e)
842848
var point = GetPixelPosition(e);
843849
var modifiers = GetModifiers(e);
844850

845-
managedCefBrowserAdapter.OnMouseMove((int)point.X, (int)point.Y, false, modifiers);
851+
if (managedCefBrowserAdapter != null)
852+
{
853+
managedCefBrowserAdapter.OnMouseMove((int)point.X, (int)point.Y, false, modifiers);
854+
}
846855
}
847856

848857
protected override void OnMouseWheel(MouseWheelEventArgs e)
849858
{
850859
var point = GetPixelPosition(e);
851860

852-
managedCefBrowserAdapter.OnMouseWheel(
853-
(int)point.X,
854-
(int)point.Y,
855-
deltaX: 0,
856-
deltaY: e.Delta
857-
);
861+
if (managedCefBrowserAdapter != null)
862+
{
863+
managedCefBrowserAdapter.OnMouseWheel(
864+
(int)point.X,
865+
(int)point.Y,
866+
deltaX: 0,
867+
deltaY: e.Delta
868+
);
869+
}
858870
}
859871

860872
protected void PopupMouseEnter(object sender, MouseEventArgs e)
@@ -884,7 +896,11 @@ protected override void OnMouseUp(MouseButtonEventArgs e)
884896
protected override void OnMouseLeave(MouseEventArgs e)
885897
{
886898
var modifiers = GetModifiers(e);
887-
managedCefBrowserAdapter.OnMouseMove(0, 0, true, modifiers);
899+
900+
if (managedCefBrowserAdapter != null)
901+
{
902+
managedCefBrowserAdapter.OnMouseMove(0, 0, true, modifiers);
903+
}
888904
}
889905

890906
private void OnMouseButton(MouseButtonEventArgs e)
@@ -913,7 +929,10 @@ private void OnMouseButton(MouseButtonEventArgs e)
913929
var mouseUp = (e.ButtonState == MouseButtonState.Released);
914930
var point = GetPixelPosition(e);
915931

916-
managedCefBrowserAdapter.OnMouseButton((int)point.X, (int)point.Y, mouseButtonType, mouseUp, e.ClickCount, modifiers);
932+
if (managedCefBrowserAdapter != null)
933+
{
934+
managedCefBrowserAdapter.OnMouseButton((int)point.X, (int)point.Y, mouseButtonType, mouseUp, e.ClickCount, modifiers);
935+
}
917936
}
918937

919938
void IWebBrowserInternal.OnInitialized()

0 commit comments

Comments
 (0)