vcl/source/window/floatwin.cxx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
New commits: commit edee41c42d5dc4a3a6ad86cc9e19c9892e3d480d Author: Pranav Kant <pran...@collabora.co.uk> Date: Wed Dec 6 16:19:35 2017 +0530 lokdialog: Prevent crash on autopopup and some other dialogs Cherry-picked from following commits: (cherry picked from commit 20f985a4ac2dcc6d287c808b9dcfd055fcbabd91) (cherry picked from commit 03fa6b15439938044fa95eb9b0584d16cf23db88) (cherry picked from commit 42fae43d70d3d1b8fcc9fc6328b1060d6d72abfc) Change-Id: Ib997e11fd4a0f50b8911e9891918112e8ff8ef85 Reviewed-on: https://gerrit.libreoffice.org/45942 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Michael Meeks <michael.me...@collabora.com> diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx index 982b9e6eaf1c..e1b7d76638fe 100644 --- a/vcl/source/window/floatwin.cxx +++ b/vcl/source/window/floatwin.cxx @@ -608,13 +608,11 @@ void FloatingWindow::StateChanged( StateChangedType nType ) SystemWindow::StateChanged( nType ); - if (VclPtr<vcl::Window> pParent = GetParentWithLOKNotifier()) + VclPtr<vcl::Window> pParent = GetParentWithLOKNotifier(); + if (pParent) { - const vcl::ILibreOfficeKitNotifier* pNotifier = pParent->GetLOKNotifier(); - if (nType == StateChangedType::InitShow && IsVisible()) + if (nType == StateChangedType::InitShow) { - SetLOKNotifier(pNotifier); - std::vector<vcl::LOKPayloadItem> aItems; if (pParent == this) { @@ -625,16 +623,18 @@ void FloatingWindow::StateChanged( StateChangedType nType ) } else { + SetLOKNotifier(pParent->GetLOKNotifier()); aItems.emplace_back(std::make_pair("type", "child")); aItems.emplace_back(std::make_pair("parentId", OString::number(pParent->GetLOKWindowId()))); } aItems.emplace_back(std::make_pair("size", GetSizePixel().toString())); aItems.emplace_back(std::make_pair("position", mpImplData->maPos.toString())); - pNotifier->notifyWindow(GetLOKWindowId(), "created", aItems); + GetLOKNotifier()->notifyWindow(GetLOKWindowId(), "created", aItems); } - else if (!IsVisible()) + else if (!IsVisible() && nType == StateChangedType::Visible) { - pNotifier->notifyWindow(GetLOKWindowId(), "close"); + assert(GetLOKNotifier()); + GetLOKNotifier()->notifyWindow(GetLOKWindowId(), "close"); ReleaseLOKNotifier(); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits