diff options
author | Sarper Akdemir <sarper.akdemir.extern@allotropia.de> | 2024-04-04 18:41:33 +0300 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2024-05-01 15:00:32 +0200 |
commit | 0f1b0cef8d105f55af73770ed39c2e32da33542b (patch) | |
tree | f3eb68f383e1e13adb6b1913a0bcb64ece076ff5 | |
parent | tdf#33603: introduce reworked notes panel (diff) | |
download | core-0f1b0cef8d105f55af73770ed39c2e32da33542b.tar.gz core-0f1b0cef8d105f55af73770ed39c2e32da33542b.zip |
related tdf#33603: fix notespanel missing outliner on mode change
When MainViewShell changed editing mode, two EventMultipexerEvents
arrive in succession - if while processing the first one links are
reset, second one was ignored.
Do not remove EventMultiplexer listener on FillOutliner()
Change-Id: I9c41c823ca74574238d1199ed38f92d9c75a113e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165807
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
-rw-r--r-- | sd/source/ui/view/NotesPanelView.cxx | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/sd/source/ui/view/NotesPanelView.cxx b/sd/source/ui/view/NotesPanelView.cxx index 0cbc7149e8ae..49fa38a05d88 100644 --- a/sd/source/ui/view/NotesPanelView.cxx +++ b/sd/source/ui/view/NotesPanelView.cxx @@ -52,6 +52,9 @@ NotesPanelView::NotesPanelView(DrawDocShell& rDocSh, vcl::Window* pWindow, // fill Outliner with contents FillOutliner(); + mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->AddEventListener( + LINK(this, NotesPanelView, EventMultiplexerListener)); + // TODO: UNDO // sd::UndoManager* pDocUndoMgr = dynamic_cast<sd::UndoManager*>(mpDocSh->GetUndoManager()); // if (pDocUndoMgr != nullptr) @@ -60,8 +63,10 @@ NotesPanelView::NotesPanelView(DrawDocShell& rDocSh, vcl::Window* pWindow, NotesPanelView::~NotesPanelView() { - ResetLinks(); + mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->RemoveEventListener( + LINK(this, NotesPanelView, EventMultiplexerListener)); + ResetLinks(); // DisconnectFromApplication(); // mpProgress.reset(); } @@ -93,16 +98,9 @@ void NotesPanelView::FillOutliner() void NotesPanelView::SetLinks() { maOutliner.SetStatusEventHdl(LINK(this, NotesPanelView, StatusEventHdl)); - mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->AddEventListener( - LINK(this, NotesPanelView, EventMultiplexerListener)); } -void NotesPanelView::ResetLinks() -{ - maOutliner.SetStatusEventHdl(Link<EditStatus&, void>()); - mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->RemoveEventListener( - LINK(this, NotesPanelView, EventMultiplexerListener)); -} +void NotesPanelView::ResetLinks() { maOutliner.SetStatusEventHdl(Link<EditStatus&, void>()); } void NotesPanelView::removeListener() { |