To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=85687
User fs changed the following:
What |Old value |New value
================================================================================
Assigned to|fs |mav
--------------------------------------------------------------------------------
Status|STARTED |NEW
--------------------------------------------------------------------------------
------- Additional comments from [EMAIL PROTECTED] Tue Jan 29 22:18:16 +0000
2008 -------
fs->mav: That's a regression of your fix for issue 84941, I'd say.
Before your changes, the macro execution mode was held in
DocumentMacroMode_Data::nMacroExecutionMode, and initialized exactly once. Your
change was to keep the mode in only one place, by introducing the
"setImposedMacroExecMode" method. Which is a Good Thing, so far.
What happens is something along those lines:
- the form is loaded
- during/after loading, the DocumentMacroMode::adjustMacroMode. It calculates
the effective macro exec mode to be ALWAYS_EXECUTE_NO_WARN, which is correct,
since the form itself does not contain any macros.
- This mode is forwarded to the document, using the newly introduced
setImposedMacroExecMode method. This results in the proper SID_MACROEXECMODE
item being put into the object shell's medium's item set.
- Now when we put the state of the embedded object to ACTIVE, then with the
following stack:
framework::LoadEnv::initializeLoading(...)
framework::LoadEnv::loadComponentFromURL(...)
framework::Frame::loadComponentFromURL(...)
DocumentHolder::LoadDocToFrame(unsigned char bInPlace='Ü')
DocumentHolder::GetDocFrame()
DocumentHolder::Show()
OCommonEmbeddedObject::SwitchStateTo_Impl(long nNextState=2)
OCommonEmbeddedObject::changeState(long nNewState=2)
, the macro mode is reset to NEVER_EXECUTE.
Consider framework/source/loadenv/loadenv.cxx, lines 479ff, and lines 496f
>From this time onwards, any call to the object shell's getImposedMacroExecMode
will return NEVER_EXECUTE.
Note that there has not been any change in the load environment between m4 and
m5. That is, the framework always passed a NEVER_EXECUTE at this point. However,
this never hit us, since the macro exec mode was cached in
DocumentMacroMode_Data::nMacroExecutionMode, as said above.
I am not sure what is the actual bug reason here - perhaps
DocumentHolder::LoadDocToFrame should pass the current MacroExecMode of the
document to the new loading call. More precise, it should probably obtain the
current model args (XModel::getArgs), perhaps filter them, and then pass them to
the loadComponentFromURL call, to ensure they're preserved.
---------------------------------------------------------------------
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]