summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2021-01-20 17:48:18 +0100
committerTomaž Vajngerl <quikee@gmail.com>2021-02-05 09:15:08 +0100
commit7b1bb4335c995757ff3b74584f6e9fda24bb0b67 (patch)
tree0ec7f9e7dca743a66332308290f493591cc46c17 /vcl
parent305f3963070c85f0c4e1e7543dd5709c7ffb714f (diff)
jsdialog: don't send multiple updates with the same content
Change-Id: I601511a85386a8a35cbc6a121a4719928f585794 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109726 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109957 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/jsdialog/jsdialogbuilder.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 55fdb2bd995d..4d4802138fcf 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -64,6 +64,18 @@ void JSDialogNotifyIdle::send(const boost::property_tree::ptree& rTree)
void JSDialogNotifyIdle::sendMessage(jsdialog::MessageType eType, VclPtr<vcl::Window> pWindow)
{
+ // we want only the latest update of same type
+ // TODO: also if we met full update - previous updates are not valid
+ auto it = m_aMessageQueue.begin();
+
+ while (it != m_aMessageQueue.end())
+ {
+ if (it->first == eType && it->second == pWindow)
+ it = m_aMessageQueue.erase(it);
+ else
+ it++;
+ }
+
m_aMessageQueue.push_back(std::make_pair(eType, pWindow));
}