vcl/source/window/event.cxx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)
New commits: commit d62dc01ebc52b0d7f88dd1e42aa1a9f7961a85ea Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Nov 5 09:24:02 2019 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Nov 5 13:21:33 2019 +0100 Resolves: tdf#128599 null deref Change-Id: If71a32b15b5ffab11185e2ce253ab65faf7e6ac3 Reviewed-on: https://gerrit.libreoffice.org/82056 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx index e6d52a240e5e..edfa7fd8c4d8 100644 --- a/vcl/source/window/event.cxx +++ b/vcl/source/window/event.cxx @@ -89,6 +89,17 @@ bool Window::PreNotify( NotifyEvent& rNEvt ) return bDone; } +namespace +{ + bool parentNotDialogControl(Window* pWindow) + { + vcl::Window* pParent = getNonLayoutParent(pWindow); + if (!pParent) + return true; + return ((pParent->GetStyle() & (WB_DIALOGCONTROL | WB_NODIALOGCONTROL)) != WB_DIALOGCONTROL); + } +} + bool Window::EventNotify( NotifyEvent& rNEvt ) { bool bRet = false; @@ -172,8 +183,7 @@ bool Window::EventNotify( NotifyEvent& rNEvt ) // if the parent also has dialog control activated, the parent takes over control if ( (rNEvt.GetType() == MouseNotifyEvent::KEYINPUT) || (rNEvt.GetType() == MouseNotifyEvent::KEYUP) ) { - if ( ImplIsOverlapWindow() || - ((getNonLayoutParent(this)->GetStyle() & (WB_DIALOGCONTROL | WB_NODIALOGCONTROL)) != WB_DIALOGCONTROL) ) + if (ImplIsOverlapWindow() || parentNotDialogControl(this)) { bRet = ImplDlgCtrl( *rNEvt.GetKeyEvent(), rNEvt.GetType() == MouseNotifyEvent::KEYINPUT ); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits