diff options
-rw-r--r-- | vcl/source/window/event.cxx | 10 | ||||
-rw-r--r-- | vcl/source/window/window2.cxx | 5 |
2 files changed, 15 insertions, 0 deletions
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx index 797d40a79912..e7752ae77043 100644 --- a/vcl/source/window/event.cxx +++ b/vcl/source/window/event.cxx @@ -576,7 +576,17 @@ void Window::ImplCallFocusChangeActivate( vcl::Window* pNewOverlapWindow, bool bCallActivate = true; bool bCallDeactivate = true; + if (!pOldOverlapWindow) + { + return; + } + pOldRealWindow = pOldOverlapWindow->ImplGetWindow(); + if (!pNewOverlapWindow) + { + return; + } + pNewRealWindow = pNewOverlapWindow->ImplGetWindow(); if ( (pOldRealWindow->GetType() != WindowType::FLOATINGWINDOW) || pOldRealWindow->GetActivateMode() != ActivateModeFlags::NONE ) diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx index 61ea3d80c3d0..3037491703fd 100644 --- a/vcl/source/window/window2.cxx +++ b/vcl/source/window/window2.cxx @@ -893,6 +893,11 @@ vcl::Window* Window::ImplGetBorderWindow() const vcl::Window* Window::ImplGetFirstOverlapWindow() { + if (!mpWindowImpl) + { + return nullptr; + } + if ( mpWindowImpl->mbOverlapWin ) return this; else |