To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=80994





------- Additional comments from a...@openoffice.org Thu Sep 17 07:58:46 +0000 
2009 -------
Here are some details.

On Windows, unlike the Unixes, the UNO/ATK bridge asks new windows for their
accessibility objects at the moment the Window::Show() method is called.  For
the relevant windows of the side panes (both slide sorter bar and task pane)
this is the case during construction of the view shells.  At this time the links
between windows and view shells and views are not yet set up because the
constructor of the SlideSorterViewShell and the TaskPaneViewShell are not yet
finished.

As a result the cal of the virtual CreateAccessibleDocumentView() is answered by
the base class ViewShell, not by SlideSorterViewShell or TaskPaneViewShell.  The
former returns an empty reference.  To the caller an empty reference may be
unexpected but is not illegal.

As a workaround, that is in place since a long time, the bridge handles the
empty reference gracefully and both slide sorter and task pane use a little
trick to bring their accessible objects into place: when they are fully
initialized and their virtual function table is properly set up they call Hide()
and then Show() at the window in question.  As a result the bridge asks a second
time for the accessible objects and this time gets the correct accessibility
objects.  For the bridge this is standard behavior,  hiding and showing windows
is not an uncommon procedure.

This all may not be elegant but does not misuse the API either.

The only problem, the one that I have fixed, is that the slide sorter did the
Hide()/Show() trick at the wrong time, too early.  I moved the code to a later
point in the initialization procedure and now the bridge gets the right
accessibility object.

A more elegant fix would require a rewrite of the initialization of all Impress
view shells.  Something that might introduce a lot more problems than it would
solve.


---------------------------------------------------------------------
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: issues-unsubscr...@graphics.openoffice.org
For additional commands, e-mail: issues-h...@graphics.openoffice.org


---------------------------------------------------------------------
To unsubscribe, e-mail: allbugs-unsubscr...@openoffice.org
For additional commands, e-mail: allbugs-h...@openoffice.org

Reply via email to