summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2021-02-26 09:00:33 +0100
committerJan Holesovsky <kendy@collabora.com>2021-03-04 10:50:39 +0100
commitbe688de877ad5e96836e7bd0a9d70b80d6dabdf2 (patch)
tree873aad34b7c1a4b15542d7bf67828e3ac8e6ae8d /vcl
parented31585336d1d849c1dd9f73372881e0275ce35a (diff)
jsdialog: stop idle on destruction
be sure timer is stopped after we destroy builder. if we close abandon previous messages. Change-Id: I8c5458d14c45660aadecb1559b87d30a32364ff6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111593 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/jsdialog/jsdialogbuilder.hxx1
-rw-r--r--vcl/jsdialog/jsdialogbuilder.cxx11
2 files changed, 10 insertions, 2 deletions
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index cb4a46ada304..c228967eb0f5 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -64,6 +64,7 @@ public:
void Invoke() override;
+ void clearQueue();
void forceUpdate();
void sendMessage(jsdialog::MessageType eType, VclPtr<vcl::Window> pWindow);
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 518a1ca25cf3..573c9a817310 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -174,10 +174,16 @@ void JSDialogNotifyIdle::Invoke()
}
}
- m_aMessageQueue.clear();
+ clearQueue();
}
-JSDialogSender::~JSDialogSender() { sendClose(); }
+void JSDialogNotifyIdle::clearQueue() { m_aMessageQueue.clear(); }
+
+JSDialogSender::~JSDialogSender()
+{
+ sendClose();
+ mpIdleNotify->Stop();
+}
void JSDialogSender::sendFullUpdate(bool bForce)
{
@@ -190,6 +196,7 @@ void JSDialogSender::sendFullUpdate(bool bForce)
void JSDialogSender::sendClose()
{
+ mpIdleNotify->clearQueue();
mpIdleNotify->sendMessage(jsdialog::MessageType::Close, nullptr);
flush();
}