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>
This commit is contained in:
committed by
Samuel Mehrbrodt
parent
2919194762
commit
c3bc5c09e0
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user