desktop/source/lib/init.cxx | 13 +++++++++++++ 1 file changed, 13 insertions(+)
New commits: commit 6661ebe5d3c2ce12a99a6af4c8de51b61b279e57 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Sun May 5 20:26:42 2019 -0400 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Jul 25 15:08:56 2019 +0200 LOK: Window creation supersedes any events on same window This happens when we get multiple created events on same window, interspersed with invalidations. Change-Id: I2dbaa0f84306d770f1de047a23996209c28304fe Reviewed-on: https://gerrit.libreoffice.org/76312 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 201b5d9c7dfe..9667f5eac821 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -1394,6 +1394,19 @@ void CallbackFlushHandler::queue(const int type, const char* data) assert(aCallbackData.validate() && "Validation after setJson failed!"); } } + else if (aTree.get<std::string>("action", "") == "created") + { + // Remove all previous actions on same dialog, if we are creating it anew. + removeAll([&nLOKWindowId](const queue_type::value_type& elem) { + if (elem.Type == LOK_CALLBACK_WINDOW) + { + const boost::property_tree::ptree& aOldTree = elem.getJson(); + if (nLOKWindowId == aOldTree.get<unsigned>("id", 0)) + return true; + } + return false; + }); + } } break; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits