[EMAIL PROTECTED] schrieb:
To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=73115
User fs changed the following:
What |Old value |New value
================================================================================
CC|'' |'aw'
--------------------------------------------------------------------------------
Assigned to|fs |nn
--------------------------------------------------------------------------------
Status|STARTED |NEW
--------------------------------------------------------------------------------
------- Additional comments from [EMAIL PROTECTED] Thu Jan 4 04:23:29 -0800
2007 -------
fs->aw, nn: I'm lost in the drawing/spreadsheet object hierarchy here ...
When a sheet is removed via UNO API, then ScDrawLayer::ScRemovePage broadcasts
aScTabDeletedHint. This is observed by ScDrawView::SFX_NOTIFY, which then does a
HideSdrPage. Unfortunately, this means that now the drawing layer is somehow
corrupt, which can be observed by hovering with the mouse over the active sheet
- this asserts, since now the ScDrawView does not have a valid SdrPageView
anymore - it was deleted and reset in HideSdrPage.
Hmm. Comparing this where a sheet is deleted manually, there is *also* a
HideSdrPage called, which also resets the SdrPageView member to NULL.
However, in this scenario, there's an additional ShowSdrPage called, which
re-creates it, with the following stack:
SdrPaintView::ShowSdrPage()
FmFormView::ShowSdrPage()
ScTabView::TabChanged()
ScTabView::SetTabNo()
ScViewFunc::DeleteTables()
fs->nn: Is it possible that removing sheets by API is missing some restoration
of the current sheet, or something like this?
AW: From DrawingLayer perspective, the DL View does not necessarily have
to have a SdrPageView. This would be a DrawingLayer which does not
visualize a page (yet/no more). The applications should work with that,
it is no good idea to somewhere remember the SdrPageView or access the
GetSdrPageView()-result without test.
Well, from the applications view, these simply do not do that correct in
all places and often rely on an SdrPageView being there, so the usual
(not good) workaround is to create a new, empty SdrPageView by showing a
new, empty page.
At least that this works shows that in principle, the SdrPageView is not
remembered, but only (hah!) places where GetSdrPageView() result is not
tested need to be looked for...
---------------------------------------------------------------------
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
--
Greetings, Armin Le Grand (AW)
[EMAIL PROTECTED]
---------------------------------------------------------------------
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]