[Libreoffice-bugs] [Bug 114271] Assertion failure when clicking on comment border in Calc

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Thu Mar 7 20:24:12 UTC 2019


https://bugs.documentfoundation.org/show_bug.cgi?id=114271

Julien Nabet <serval2412 at yahoo.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |erack at redhat.com

--- Comment #7 from Julien Nabet <serval2412 at yahoo.fr> ---
Eike: with this patch, I don't reproduce the assert:
diff --git a/sc/source/ui/drawfunc/futext.cxx
b/sc/source/ui/drawfunc/futext.cxx
index f1a4afcd91c4..f1ec728abad0 100644
--- a/sc/source/ui/drawfunc/futext.cxx
+++ b/sc/source/ui/drawfunc/futext.cxx
@@ -194,7 +194,7 @@ bool FuText::MouseButtonDown(const MouseEvent& rMEvt)

                 //!?? the default values are not correct when result is
without outliner ???!?
                 auto pOTemp = pO.get();
-                if ( pView->SdrBeginTextEdit(pObj, pPV, pWindow, true,
pO.release()) )
+                if ( !pView->IsTextEdit() && pView->SdrBeginTextEdit(pObj,
pPV, pWindow, true, pO.release()) )
                 {
                     // subscribe EditEngine-UndoManager
                     rViewShell.SetDrawTextUndo( &pOTemp->GetUndoManager() );

However, I wonder if it just hides the problem.

Indeed UndoManager error may give hints about the root cause.

I tried to follow the problem of exchanging 2 non null managers so I put some
traces to display the thread and undomanager pointer, I finally retrieved
these:

1) in EditNote() at:
GetViewData().GetDispatcher().Execute( SID_DRAW_NOTEEDIT, SfxCallMode::SYNCHRON
| SfxCallMode::RECORD ); (line 508)

#0  0x00007ffff55455b6 in SfxShell::SetUndoManager(SfxUndoManager*)
(this=0x555558d19b40, pNewUndoMgr=0x555557e8b4c0) at
/home/julien/lo/libreoffice/sfx2/source/control/shell.cxx:210
#1  0x00007fffde40b30a in ScDrawTextObjectBar::ScDrawTextObjectBar(ScViewData*)
(this=0x555558d19b40, pData=0x555557e32088) at
/home/julien/lo/libreoffice/sc/source/ui/drawfunc/drtxtob.cxx:112
#2  0x00007fffde902735 in ScTabViewShell::SetCurSubShell(ObjectSelectionType,
bool) (this=0x555557e31fc0, eOST=OST_DrawText, bForce=false) at
/home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh4.cxx:816
#3  0x00007fffde901f5f in ScTabViewShell::SetDrawTextShell(bool)
(this=0x555557e31fc0, bActive=true) at
/home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh4.cxx:656
#4  0x00007fffde8f86b9 in ScTabViewShell::ExecDraw(SfxRequest&)
(this=0x555557e31fc0, rReq=...) at
/home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh2.cxx:189
#5  0x00007fffde8f6e9d in SfxStubScTabViewShellExecDraw(SfxShell*, SfxRequest&)
(pShell=0x555557e31fc0, rReq=...) at
/home/julien/lo/libreoffice/workdir/SdiTarget/sc/sdi/scslots.hxx:1434
#6  0x00007ffff54fb508 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&),
SfxRequest&) (this=0x555557e31fc0, pFunc=0x7fffde8f6e6f
<SfxStubScTabViewShellExecDraw(SfxShell*, SfxRequest&)>, rReq=...)
    at /home/julien/lo/libreoffice/include/sfx2/shell.hxx:207
#7  0x00007ffff54f23a5 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&,
SfxRequest&, bool) (this=0x555557e280a0, rShell=..., rSlot=..., rReq=...,
bRecord=true)
    at /home/julien/lo/libreoffice/sfx2/source/control/dispatch.cxx:356
#8  0x00007ffff54f4de1 in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&,
SfxRequest&, SfxCallMode)
    (this=0x555557e280a0, rShell=..., rSlot=..., rReq=...,
eCallMode=(SfxCallMode::SYNCHRON | SfxCallMode::RECORD)) at
/home/julien/lo/libreoffice/sfx2/source/control/dispatch.cxx:856
#9  0x00007ffff54f54c1 in SfxDispatcher::Execute(unsigned short, SfxCallMode,
SfxPoolItem const**, unsigned short, SfxPoolItem const**)
    (this=0x555557e280a0, nSlot=26081, eCall=(SfxCallMode::SYNCHRON |
SfxCallMode::RECORD), pArgs=0x0, nModi=0, pInternalArgs=0x0) at
/home/julien/lo/libreoffice/sfx2/source/control/dispatch.cxx:962
#10 0x00007fffde984f1a in ScViewFunc::EditNote() (this=0x555557e32078) at
/home/julien/lo/libreoffice/sc/source/ui/view/viewfun6.cxx:508

2) In the same method at line 514
#0  0x00007ffff55455b6 in SfxShell::SetUndoManager(SfxUndoManager*)
(this=0x555558d19b40, pNewUndoMgr=0x555559139760) at
/home/julien/lo/libreoffice/sfx2/source/control/shell.cxx:210
#1  0x00007fffde903539 in ScTabViewShell::SetDrawTextUndo(SfxUndoManager*)
(this=0x555557e31fc0, pNewUndoMgr=0x555559139760) at
/home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh4.cxx:1016
#2  0x00007fffde430d8b in FuText::SetInEditMode(SdrObject*, Point const*, bool,
KeyEvent const*) (this=0x555558c71f60, pObj=0x555558f5fd00, pMousePixel=0x0,
bCursorToEnd=false, pInitialKey=0x0)
    at /home/julien/lo/libreoffice/sc/source/ui/drawfunc/futext.cxx:588
#3  0x00007fffde984f8b in ScViewFunc::EditNote() (this=0x555557e32078) at
/home/julien/lo/libreoffice/sc/source/ui/view/viewfun6.cxx:514

First retrieves pViewData->GetSfxDocShell()->GetUndoManager()
Second one retrieves pOTemp->GetUndoManager()

Any thoughts?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20190307/55692bec/attachment-0001.html>


More information about the Libreoffice-bugs mailing list