To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=44830
Issue #:|44830
Summary:|mis-ordered shell stack crasher ...
Component:|Drawing
Version:|680m79
Platform:|Other
URL:|
OS/Version:|Linux
Status:|NEW
Status whiteboard:|
Keywords:|
Resolution:|
Issue type:|DEFECT
Priority:|P3
Subcomponent:|code
Assigned to:|wg
Reported by:|mmeeks
------- Additional comments from [EMAIL PROTECTED] Fri Mar 11 08:07:07 -0800
2005 -------
To repeat:
start impress -> Create in the wizard
Switch to a view with editable text, start typing some text
** With the text still focused **
select 'Master Pages' in the right-hand-side 'Tasks' pane
Now select a different task/background, then click on the expand/contract widget
above - bang ...
The root cause of this problem [ after much tiresome investigation ] seems to be
a mis-ordered SfxShell stack in the SfxDispatcher.
in sdview.cxx (sd::View::BegTextEdit) we have:
pViewShell->GetViewFrame()->GetDispatcher()->
GetShell(0)->SetUndoManager(pUndoMgr);
I have verified that this sets the TextObjectBar's UndoManager (as expected).
Unfortunately - when we come to sd::View::EndTextEdit we have:
if (pViewShell)
{
pViewShell->GetViewFrame()->GetDispatcher()->
GetShell(0)->SetUndoManager(pUndoMgr);
But now it is the case that GetShell(0) returns an 'AllMasterPagesSelector'
shell - which we duly re-set the UndoManager on.
Unfortunately, that leaves the TextObjectBar's UndoManager pointing at a (now
destroyed) object - which sooner or later crashes everything as we try to
construct a context menu for that.
<segv>
#11 0x4868e1fc in sd::ViewShell::GetMenuState ()
#12 0x486a2fa1 in sd::DrawViewShell::GetMenuState ()
#13 0x486c380e in SfxStubDrawViewShellGetMenuState ()
#14 0x4416eb37 in SfxDispatcher::_FillState ()
#15 0x44178b4e in SfxBindings::Update_Impl ()
#16 0x4417b2f9 in SfxBindings::NextJob_Impl ()
#17 0x4417b190 in SfxBindings::LinkStubNextJob_Impl ()
#18 0x4016c515 in Timer::Timeout ()
I attach some notes I took while chasing it - we've shipped with a nasty hack to
sd::ViewShell:ImpGetUndoManager.
Needless to say, one can think of more robust & reliable ways of managing this
state.
---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]