[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.2' - 53 commits - accessibility/bridge accessibility/CustomTarget_bridge_inc.mk accessibility/CustomTarget_bridge.mk accessibility/inc accessibility/Jar_uno_accessbridge.mk accessibility/Library_java_uno_accessbridge.mk accessibility/Module_accessibility.mk accessibility/source chart2/source config_host.mk.in configure.ac cui/source desktop/source distro-configs/CPWin32.conf distro-configs/CPWin32-MPL.conf editeng/source formula/source include/editeng include/svtools include/svx include/toolkit include/vcl offapi/com offapi/UnoApi_offapi.mk padmin/source postprocess/Rdb_services.mk Repository.mk RepositoryModule_host.mk sc/inc scp2/source sc/source sd/inc sd/source sfx2/qa sfx2/source starmath/source svtools/AllLangResTarget_svt.mk svtools/Library_svt.mk svtools/source svx/Library_svx.mk svx/source sw/inc sw/Library_sw.mk sw/source toolkit/source vcl/aqua vcl/inc vcl/source vcl/unx vcl/win winaccessibility/Module_winaccessibility.mk wi naccessibility/source

Tor Lillqvist tml at collabora.com
Tue Jun 10 08:38:11 PDT 2014


 Repository.mk                                                                               |    4 
 RepositoryModule_host.mk                                                                    |    2 
 accessibility/CustomTarget_bridge.mk                                                        |   33 
 accessibility/CustomTarget_bridge_inc.mk                                                    |   23 
 accessibility/Jar_uno_accessbridge.mk                                                       |   80 
 accessibility/Library_java_uno_accessbridge.mk                                              |   32 
 accessibility/Module_accessibility.mk                                                       |   11 
 accessibility/bridge/org/openoffice/accessibility/AccessBridge.java                         |  232 -
 accessibility/bridge/org/openoffice/accessibility/KeyHandler.java                           |  125 
 accessibility/bridge/org/openoffice/accessibility/PopupWindow.java                          |  203 -
 accessibility/bridge/org/openoffice/accessibility/WindowsAccessBridgeAdapter.java           |  645 ---
 accessibility/bridge/org/openoffice/accessibility/java_uno_accessbridge.component           |   25 
 accessibility/bridge/org/openoffice/accessibility/manifest                                  |    2 
 accessibility/bridge/org/openoffice/java/accessibility/AbstractButton.java                  |  163 
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleActionImpl.java            |   62 
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleComponentImpl.java         |  223 -
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleEditableTextImpl.java      |  351 --
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleExtendedState.java         |   44 
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleHypertextImpl.java         |  180 -
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleIconImpl.java              |   64 
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleKeyBinding.java            |  376 --
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleObjectFactory.java         |  534 ---
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleRoleAdapter.java           |  139 
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleSelectionImpl.java         |   90 
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleStateAdapter.java          |  205 -
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java              |  663 ---
 accessibility/bridge/org/openoffice/java/accessibility/AccessibleValueImpl.java             |   87 
 accessibility/bridge/org/openoffice/java/accessibility/Alert.java                           |   57 
 accessibility/bridge/org/openoffice/java/accessibility/Application.java                     |   36 
 accessibility/bridge/org/openoffice/java/accessibility/Button.java                          |  148 
 accessibility/bridge/org/openoffice/java/accessibility/CheckBox.java                        |   41 
 accessibility/bridge/org/openoffice/java/accessibility/ComboBox.java                        |  114 
 accessibility/bridge/org/openoffice/java/accessibility/Component.java                       |  728 ----
 accessibility/bridge/org/openoffice/java/accessibility/Container.java                       |  754 ----
 accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java               |  149 
 accessibility/bridge/org/openoffice/java/accessibility/Dialog.java                          |  642 ---
 accessibility/bridge/org/openoffice/java/accessibility/FocusTraversalPolicy.java            |   80 
 accessibility/bridge/org/openoffice/java/accessibility/Frame.java                           |  659 ---
 accessibility/bridge/org/openoffice/java/accessibility/Icon.java                            |   64 
 accessibility/bridge/org/openoffice/java/accessibility/Label.java                           |  118 
 accessibility/bridge/org/openoffice/java/accessibility/List.java                            |  434 --
 accessibility/bridge/org/openoffice/java/accessibility/Menu.java                            |  321 -
 accessibility/bridge/org/openoffice/java/accessibility/MenuContainer.java                   |  156 
 accessibility/bridge/org/openoffice/java/accessibility/MenuItem.java                        |   90 
 accessibility/bridge/org/openoffice/java/accessibility/NativeFrame.java                     |   26 
 accessibility/bridge/org/openoffice/java/accessibility/Paragraph.java                       |  211 -
 accessibility/bridge/org/openoffice/java/accessibility/RadioButton.java                     |   40 
 accessibility/bridge/org/openoffice/java/accessibility/ScrollBar.java                       |  114 
 accessibility/bridge/org/openoffice/java/accessibility/Separator.java                       |   57 
 accessibility/bridge/org/openoffice/java/accessibility/Table.java                           |  709 ----
 accessibility/bridge/org/openoffice/java/accessibility/TextComponent.java                   |  182 -
 accessibility/bridge/org/openoffice/java/accessibility/ToggleButton.java                    |   53 
 accessibility/bridge/org/openoffice/java/accessibility/ToolTip.java                         |  105 
 accessibility/bridge/org/openoffice/java/accessibility/Tree.java                            |  751 ----
 accessibility/bridge/org/openoffice/java/accessibility/Window.java                          |  564 ---
 accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleEventLog.java     |  178 -
 accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleHypertextLog.java |   51 
 accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleTextLog.java      |  261 -
 accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx                             |  300 -
 accessibility/inc/accessibility/extended/AccessibleGridControl.hxx                          |    3 
 accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx                      |   39 
 accessibility/inc/accessibility/extended/accessiblelistbox.hxx                              |   18 
 accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx                         |   30 
 accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx                      |    2 
 accessibility/inc/accessibility/extended/textwindowaccessibility.hxx                        |    9 
 accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx                              |    1 
 accessibility/inc/accessibility/helper/accessiblestrings.hrc                                |   13 
 accessibility/inc/accessibility/helper/listboxhelper.hxx                                    |    5 
 accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx                    |    2 
 accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx                    |    2 
 accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx                              |   22 
 accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx                             |   12 
 accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx                         |    5 
 accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx                             |    3 
 accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx                        |    4 
 accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx                             |    1 
 accessibility/source/extended/AccessibleGridControl.cxx                                     |   16 
 accessibility/source/extended/AccessibleGridControlBase.cxx                                 |   41 
 accessibility/source/extended/AccessibleGridControlHeader.cxx                               |   11 
 accessibility/source/extended/AccessibleGridControlHeaderCell.cxx                           |    5 
 accessibility/source/extended/AccessibleGridControlTable.cxx                                |   38 
 accessibility/source/extended/AccessibleGridControlTableBase.cxx                            |   22 
 accessibility/source/extended/AccessibleGridControlTableCell.cxx                            |   38 
 accessibility/source/extended/accessibleeditbrowseboxcell.cxx                               |    9 
 accessibility/source/extended/accessibleiconchoicectrl.cxx                                  |   31 
 accessibility/source/extended/accessibleiconchoicectrlentry.cxx                             |    3 
 accessibility/source/extended/accessiblelistbox.cxx                                         |  260 +
 accessibility/source/extended/accessiblelistboxentry.cxx                                    |  353 +-
 accessibility/source/extended/accessibletablistboxtable.cxx                                 |   57 
 accessibility/source/extended/textwindowaccessibility.cxx                                   |  410 ++
 accessibility/source/helper/accessiblestrings.src                                           |   50 
 accessibility/source/helper/characterattributeshelper.cxx                                   |    1 
 accessibility/source/standard/accessiblemenubasecomponent.cxx                               |   14 
 accessibility/source/standard/accessiblemenuitemcomponent.cxx                               |   19 
 accessibility/source/standard/vclxaccessiblebox.cxx                                         |  233 +
 accessibility/source/standard/vclxaccessiblebutton.cxx                                      |   10 
 accessibility/source/standard/vclxaccessiblecheckbox.cxx                                    |    5 
 accessibility/source/standard/vclxaccessiblelist.cxx                                        |  356 +-
 accessibility/source/standard/vclxaccessiblelistitem.cxx                                    |   11 
 accessibility/source/standard/vclxaccessiblemenu.cxx                                        |   10 
 accessibility/source/standard/vclxaccessiblemenuitem.cxx                                    |   17 
 accessibility/source/standard/vclxaccessibleradiobutton.cxx                                 |    2 
 accessibility/source/standard/vclxaccessiblescrollbar.cxx                                   |   20 
 accessibility/source/standard/vclxaccessibletabcontrol.cxx                                  |    2 
 accessibility/source/standard/vclxaccessibletextcomponent.cxx                               |   52 
 accessibility/source/standard/vclxaccessibletoolbox.cxx                                     |   45 
 accessibility/source/standard/vclxaccessibletoolboxitem.cxx                                 |   40 
 chart2/source/controller/accessibility/AccessibleBase.cxx                                   |    2 
 chart2/source/controller/dialogs/tp_DataSource.cxx                                          |   11 
 config_host.mk.in                                                                           |    1 
 configure.ac                                                                                |   20 
 cui/source/customize/macropg.cxx                                                            |   11 
 cui/source/dialogs/cuigrfflt.cxx                                                            |    5 
 cui/source/dialogs/iconcdlg.cxx                                                             |    5 
 cui/source/inc/headertablistbox.hxx                                                         |    2 
 cui/source/tabpages/tparea.cxx                                                              |    3 
 desktop/source/app/app.cxx                                                                  |    7 
 distro-configs/CPWin32-MPL.conf                                                             |    1 
 distro-configs/CPWin32.conf                                                                 |    1 
 editeng/source/accessibility/AccessibleEditableTextPara.cxx                                 |  908 +++++
 editeng/source/accessibility/AccessibleParaManager.cxx                                      |    9 
 editeng/source/accessibility/AccessibleStaticTextBase.cxx                                   |  155 
 editeng/source/accessibility/accessibility.src                                              |   10 
 editeng/source/editeng/edtspell.cxx                                                         |    1 
 editeng/source/editeng/impedit.cxx                                                          |   16 
 editeng/source/editeng/impedit.hxx                                                          |    4 
 editeng/source/editeng/impedit2.cxx                                                         |    1 
 editeng/source/editeng/impedit3.cxx                                                         |    7 
 editeng/source/misc/splwrap.cxx                                                             |    2 
 editeng/source/outliner/outliner.cxx                                                        |    7 
 editeng/source/uno/unoedhlp.cxx                                                             |  167 
 editeng/source/uno/unoedprx.cxx                                                             |   27 
 editeng/source/uno/unofored.cxx                                                             |    4 
 editeng/source/uno/unoforou.cxx                                                             |    4 
 editeng/source/uno/unonrule.cxx                                                             |    1 
 editeng/source/uno/unotext.cxx                                                              |    2 
 formula/source/ui/dlg/ControlHelper.hxx                                                     |    1 
 formula/source/ui/dlg/formdlgs.src                                                          |    3 
 formula/source/ui/dlg/funcutl.cxx                                                           |   16 
 formula/source/ui/dlg/parawin.cxx                                                           |    4 
 include/editeng/AccessibleEditableTextPara.hxx                                              |   10 
 include/editeng/AccessibleSvxFindReplaceDialog.hxx                                          |   53 
 include/editeng/editdata.hxx                                                                |    3 
 include/editeng/editeng.hxx                                                                 |    5 
 include/editeng/editrids.hrc                                                                |    9 
 include/editeng/editview.hxx                                                                |    6 
 include/editeng/splwrap.hxx                                                                 |    5 
 include/editeng/unoedhlp.hxx                                                                |   12 
 include/editeng/unoedprx.hxx                                                                |   10 
 include/editeng/unoedsrc.hxx                                                                |    9 
 include/editeng/unofored.hxx                                                                |    2 
 include/editeng/unoforou.hxx                                                                |    2 
 include/editeng/unotext.hxx                                                                 |    2 
 include/svtools/accessibleruler.hxx                                                         |  247 +
 include/svtools/accessibletable.hxx                                                         |    2 
 include/svtools/embedhlp.hxx                                                                |    2 
 include/svtools/headbar.hxx                                                                 |    7 
 include/svtools/ruler.hxx                                                                   |    6 
 include/svtools/svlbitm.hxx                                                                 |    2 
 include/svtools/svtools.hrc                                                                 |    6 
 include/svtools/treelistbox.hxx                                                             |   17 
 include/svtools/treelistentry.hxx                                                           |    4 
 include/svtools/valueset.hxx                                                                |    4 
 include/svtools/vclxaccessibleheaderbar.hxx                                                 |   82 
 include/svtools/vclxaccessibleheaderbaritem.hxx                                             |  115 
 include/svtools/viewdataentry.hxx                                                           |    2 
 include/svx/AccessibleControlShape.hxx                                                      |    2 
 include/svx/AccessibleGraphicShape.hxx                                                      |    3 
 include/svx/AccessibleOLEShape.hxx                                                          |    3 
 include/svx/AccessibleShape.hxx                                                             |   94 
 include/svx/AccessibleShapeTreeInfo.hxx                                                     |    6 
 include/svx/AccessibleSvxFindReplaceDialog.hxx                                              |   55 
 include/svx/AccessibleTableShape.hxx                                                        |  120 
 include/svx/ChildrenManager.hxx                                                             |    3 
 include/svx/EnhancedCustomShapeTypeNames.hxx                                                |    1 
 include/svx/IAccessibleParent.hxx                                                           |   12 
 include/svx/dlgctrl.hxx                                                                     |   23 
 include/svx/nbdtmg.hxx                                                                      |    4 
 include/svx/sdr/table/tablecontroller.hxx                                                   |   12 
 include/svx/srchdlg.hxx                                                                     |   10 
 include/svx/svdmodel.hxx                                                                    |    4 
 include/svx/svdmrkv.hxx                                                                     |    5 
 include/svx/svdoashp.hxx                                                                    |    2 
 include/svx/svdoole2.hxx                                                                    |    1 
 include/svx/svdpntv.hxx                                                                     |    2 
 include/toolkit/awt/vclxwindows.hxx                                                         |    4 
 include/vcl/combobox.hxx                                                                    |    5 
 include/vcl/lstbox.hxx                                                                      |    4 
 include/vcl/menu.hxx                                                                        |    9 
 include/vcl/svapp.hxx                                                                       |    2 
 include/vcl/texteng.hxx                                                                     |    2 
 offapi/UnoApi_offapi.mk                                                                     |    4 
 offapi/com/sun/star/accessibility/AccessBridge.idl                                          |   47 
 offapi/com/sun/star/accessibility/AccessibleEventId.idl                                     |    2 
 offapi/com/sun/star/accessibility/AccessibleRole.idl                                        |   24 
 offapi/com/sun/star/accessibility/MSAAService.idl                                           |   35 
 offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl                         |   39 
 offapi/com/sun/star/accessibility/XAccessibleGetAccFlowTo.idl                               |   38 
 offapi/com/sun/star/accessibility/XAccessibleGroupPosition.idl                              |   39 
 offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl                             |   39 
 offapi/com/sun/star/accessibility/XAccessibleTextSelection.idl                              |   45 
 offapi/com/sun/star/accessibility/XMSAAService.idl                                          |   35 
 offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl                                  |    6 
 offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl                             |    2 
 offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl                                 |    2 
 offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl                                 |    2 
 offapi/com/sun/star/text/AccessibleTextDocumentView.idl                                     |    2 
 padmin/source/pamain.cxx                                                                    |    8 
 postprocess/Rdb_services.mk                                                                 |    7 
 sc/inc/chgtrack.hxx                                                                         |   23 
 sc/inc/detfunc.hxx                                                                          |    1 
 sc/inc/document.hxx                                                                         |    3 
 sc/inc/drwlayer.hxx                                                                         |    3 
 sc/inc/table.hxx                                                                            |    3 
 sc/source/core/data/documen2.cxx                                                            |  158 
 sc/source/core/data/document.cxx                                                            |    1 
 sc/source/core/data/drwlayer.cxx                                                            |   20 
 sc/source/core/data/table2.cxx                                                              |    9 
 sc/source/core/tool/detfunc.cxx                                                             |    5 
 sc/source/ui/Accessibility/AccessibleCell.cxx                                               |  198 +
 sc/source/ui/Accessibility/AccessibleCellBase.cxx                                           |  319 +
 sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx                                   |  122 
 sc/source/ui/Accessibility/AccessibleDocument.cxx                                           |  502 ++
 sc/source/ui/Accessibility/AccessibleDocumentBase.cxx                                       |    7 
 sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx                                |   33 
 sc/source/ui/Accessibility/AccessibleEditObject.cxx                                         |  202 +
 sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx                                        | 1029 +++++
 sc/source/ui/Accessibility/AccessibleTableBase.cxx                                          |   58 
 sc/source/ui/Accessibility/AccessibleText.cxx                                               |   15 
 sc/source/ui/dbgui/dbnamdlg.cxx                                                             |   32 
 sc/source/ui/docshell/docsh.cxx                                                             |   14 
 sc/source/ui/drawfunc/fudraw.cxx                                                            |   12 
 sc/source/ui/inc/AccessibleCell.hxx                                                         |   27 
 sc/source/ui/inc/AccessibleCellBase.hxx                                                     |   13 
 sc/source/ui/inc/AccessibleDocument.hxx                                                     |   30 
 sc/source/ui/inc/AccessibleDocumentBase.hxx                                                 |    1 
 sc/source/ui/inc/AccessibleDocumentPagePreview.hxx                                          |    2 
 sc/source/ui/inc/AccessibleEditObject.hxx                                                   |   51 
 sc/source/ui/inc/AccessibleSpreadsheet.hxx                                                  |   66 
 sc/source/ui/inc/AccessibleTableBase.hxx                                                    |   10 
 sc/source/ui/inc/AccessibleText.hxx                                                         |    4 
 sc/source/ui/inc/content.hxx                                                                |   16 
 sc/source/ui/inc/dbnamdlg.hxx                                                               |    2 
 sc/source/ui/inc/drawview.hxx                                                               |    4 
 sc/source/ui/inc/gridwin.hxx                                                                |    3 
 sc/source/ui/inc/preview.hxx                                                                |    2 
 sc/source/ui/inc/scuitphfedit.hxx                                                           |    2 
 sc/source/ui/inc/tabview.hxx                                                                |    2 
 sc/source/ui/inc/tabvwsh.hxx                                                                |   14 
 sc/source/ui/inc/tphfedit.hxx                                                               |    5 
 sc/source/ui/inc/viewfunc.hxx                                                               |    2 
 sc/source/ui/miscdlgs/highred.cxx                                                           |    2 
 sc/source/ui/navipi/content.cxx                                                             |  252 +
 sc/source/ui/navipi/navipi.cxx                                                              |    7 
 sc/source/ui/pagedlg/scuitphfedit.cxx                                                       |   10 
 sc/source/ui/pagedlg/tphfedit.cxx                                                           |   10 
 sc/source/ui/view/cellsh4.cxx                                                               |    6 
 sc/source/ui/view/drawview.cxx                                                              |   94 
 sc/source/ui/view/gridwin.cxx                                                               |   43 
 sc/source/ui/view/gridwin3.cxx                                                              |    2 
 sc/source/ui/view/gridwin5.cxx                                                              |   24 
 sc/source/ui/view/output.cxx                                                                |   17 
 sc/source/ui/view/preview.cxx                                                               |   23 
 sc/source/ui/view/select.cxx                                                                |    1 
 sc/source/ui/view/tabview2.cxx                                                              |    6 
 sc/source/ui/view/tabview3.cxx                                                              |    4 
 sc/source/ui/view/tabvwsh.cxx                                                               |   17 
 sc/source/ui/view/tabvwsh4.cxx                                                              |   63 
 sc/source/ui/view/tabvwshe.cxx                                                              |   38 
 sc/source/ui/view/viewfun2.cxx                                                              |    3 
 scp2/source/ooo/file_ooo.scp                                                                |    4 
 sd/inc/drawdoc.hxx                                                                          |   11 
 sd/inc/glob.hxx                                                                             |    1 
 sd/source/core/drawdoc.cxx                                                                  |    1 
 sd/source/core/drawdoc2.cxx                                                                 |   12 
 sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx                                   |  164 
 sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx                                   |  396 ++
 sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx                                  |   10 
 sd/source/ui/accessibility/AccessibleOutlineView.cxx                                        |   35 
 sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx                           |    5 
 sd/source/ui/accessibility/AccessiblePresentationOLEShape.cxx                               |    7 
 sd/source/ui/accessibility/AccessiblePresentationShape.cxx                                  |   97 
 sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx                                  |    4 
 sd/source/ui/accessibility/AccessibleSlideSorterView.cxx                                    |   37 
 sd/source/ui/accessibility/accessibility.hrc                                                |   38 
 sd/source/ui/accessibility/accessibility.src                                                |  190 +
 sd/source/ui/dlg/navigatr.cxx                                                               |   33 
 sd/source/ui/dlg/sdtreelb.cxx                                                               |  321 +
 sd/source/ui/docshell/docshel4.cxx                                                          |  285 +
 sd/source/ui/func/fudraw.cxx                                                                |   12 
 sd/source/ui/func/fuediglu.cxx                                                              |  100 
 sd/source/ui/func/fusel.cxx                                                                 |   92 
 sd/source/ui/inc/AccessibleDocumentViewBase.hxx                                             |   27 
 sd/source/ui/inc/AccessibleDrawDocumentView.hxx                                             |   35 
 sd/source/ui/inc/AccessibleOutlineView.hxx                                                  |    4 
 sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx                                     |    3 
 sd/source/ui/inc/AccessiblePresentationOLEShape.hxx                                         |    3 
 sd/source/ui/inc/AccessiblePresentationShape.hxx                                            |    1 
 sd/source/ui/inc/AccessibleSlideSorterView.hxx                                              |    2 
 sd/source/ui/inc/DrawController.hxx                                                         |    9 
 sd/source/ui/inc/DrawDocShell.hxx                                                           |   11 
 sd/source/ui/inc/DrawViewShell.hxx                                                          |   17 
 sd/source/ui/inc/OutlineViewShell.hxx                                                       |    2 
 sd/source/ui/inc/SdUnoDrawView.hxx                                                          |    4 
 sd/source/ui/inc/SlideSorterViewShell.hxx                                                   |    2 
 sd/source/ui/inc/TabControl.hxx                                                             |    2 
 sd/source/ui/inc/ViewShell.hxx                                                              |    5 
 sd/source/ui/inc/Window.hxx                                                                 |    1 
 sd/source/ui/inc/fuediglu.hxx                                                               |    6 
 sd/source/ui/inc/fusel.hxx                                                                  |    8 
 sd/source/ui/inc/navigatr.hxx                                                               |    5 
 sd/source/ui/inc/sdtreelb.hxx                                                               |   29 
 sd/source/ui/slideshow/showwin.cxx                                                          |   22 
 sd/source/ui/slideshow/showwindow.hxx                                                       |    4 
 sd/source/ui/slideshow/slideshow.cxx                                                        |   11 
 sd/source/ui/slideshow/slideshowimpl.cxx                                                    |   10 
 sd/source/ui/slidesorter/controller/SlsFocusManager.cxx                                     |    3 
 sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx                                     |   17 
 sd/source/ui/unoidl/DrawController.cxx                                                      |   46 
 sd/source/ui/view/Outliner.cxx                                                              |   11 
 sd/source/ui/view/drviews4.cxx                                                              |   38 
 sd/source/ui/view/drviews5.cxx                                                              |    6 
 sd/source/ui/view/outlnvsh.cxx                                                              |    8 
 sd/source/ui/view/sdwindow.cxx                                                              |   29 
 sd/source/ui/view/tabcontr.cxx                                                              |    5 
 sd/source/ui/view/viewshel.cxx                                                              |   35 
 sfx2/qa/complex/sfx2/UndoManager.java                                                       |    4 
 sfx2/source/dialog/tabdlg.cxx                                                               |    3 
 sfx2/source/dialog/templdlg.src                                                             |    3 
 sfx2/source/menu/mnuitem.cxx                                                                |    4 
 sfx2/source/view/viewfrm.cxx                                                                |    8 
 starmath/source/accessibility.cxx                                                           |    4 
 starmath/source/accessibility.hxx                                                           |    6 
 svtools/AllLangResTarget_svt.mk                                                             |    1 
 svtools/Library_svt.mk                                                                      |    3 
 svtools/source/brwbox/brwbox3.cxx                                                           |   20 
 svtools/source/brwbox/editbrowsebox.cxx                                                     |    2 
 svtools/source/contnr/imivctl1.cxx                                                          |    1 
 svtools/source/contnr/svimpbox.cxx                                                          |   14 
 svtools/source/contnr/svtabbx.cxx                                                           |    6 
 svtools/source/contnr/treelistbox.cxx                                                       |  126 
 svtools/source/contnr/viewdataentry.cxx                                                     |    7 
 svtools/source/control/accessibleruler.cxx                                                  |  482 ++
 svtools/source/control/headbar.cxx                                                          |   23 
 svtools/source/control/ruler.cxx                                                            |   37 
 svtools/source/control/ruler.src                                                            |   28 
 svtools/source/control/valueacc.cxx                                                         |   44 
 svtools/source/control/valueimp.hxx                                                         |    1 
 svtools/source/control/valueset.cxx                                                         |   13 
 svtools/source/control/vclxaccessibleheaderbar.cxx                                          |  163 
 svtools/source/control/vclxaccessibleheaderbaritem.cxx                                      |  370 ++
 svtools/source/misc/embedhlp.cxx                                                            |  101 
 svtools/source/table/tablecontrol_impl.cxx                                                  |    2 
 svx/Library_svx.mk                                                                          |    2 
 svx/source/accessibility/AccessibleControlShape.cxx                                         |   78 
 svx/source/accessibility/AccessibleEmptyEditSource.cxx                                      |    2 
 svx/source/accessibility/AccessibleFrameSelector.cxx                                        |   17 
 svx/source/accessibility/AccessibleGraphicShape.cxx                                         |   29 
 svx/source/accessibility/AccessibleOLEShape.cxx                                             |   19 
 svx/source/accessibility/AccessibleShape.cxx                                                |  596 +++
 svx/source/accessibility/AccessibleShapeTreeInfo.cxx                                        |    9 
 svx/source/accessibility/AccessibleSvxFindReplaceDialog.cxx                                 |   96 
 svx/source/accessibility/AccessibleTextHelper.cxx                                           |  110 
 svx/source/accessibility/ChildrenManager.cxx                                                |   14 
 svx/source/accessibility/ChildrenManagerImpl.cxx                                            |  166 
 svx/source/accessibility/ChildrenManagerImpl.hxx                                            |   31 
 svx/source/accessibility/ShapeTypeHandler.cxx                                               |   36 
 svx/source/accessibility/charmapacc.cxx                                                     |   47 
 svx/source/accessibility/svxpixelctlaccessiblecontext.cxx                                   | 1043 ++++++
 svx/source/accessibility/svxrectctaccessiblecontext.cxx                                     |  164 
 svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx                                    |  249 +
 svx/source/dialog/_bmpmask.cxx                                                              |   73 
 svx/source/dialog/charmap.cxx                                                               |   16 
 svx/source/dialog/dlgctrl.cxx                                                               |  240 +
 svx/source/dialog/frmsel.cxx                                                                |   57 
 svx/source/dialog/srchdlg.cxx                                                               |   20 
 svx/source/inc/AccessibleFrameSelector.hxx                                                  |    5 
 svx/source/inc/svxpixelctlaccessiblecontext.hxx                                             |  304 +
 svx/source/inc/svxrectctaccessiblecontext.hxx                                               |   26 
 svx/source/sidebar/nbdtmg.cxx                                                               |    2 
 svx/source/svdraw/svdmrkv.cxx                                                               |   38 
 svx/source/svdraw/svdoashp.cxx                                                              |   16 
 svx/source/svdraw/svdoole2.cxx                                                              |   12 
 svx/source/svdraw/svdpntv.cxx                                                               |    5 
 svx/source/table/accessiblecell.cxx                                                         |  109 
 svx/source/table/accessiblecell.hxx                                                         |    8 
 svx/source/table/accessibletableshape.cxx                                                   |  711 +++-
 svx/source/table/tablecontroller.cxx                                                        |   89 
 svx/source/unodraw/unoprov.cxx                                                              |    1 
 svx/source/unodraw/unoshtxt.cxx                                                             |   25 
 sw/Library_sw.mk                                                                            |    2 
 sw/inc/PostItMgr.hxx                                                                        |    2 
 sw/inc/access.hrc                                                                           |    5 
 sw/inc/accmap.hxx                                                                           |   45 
 sw/inc/crsrsh.hxx                                                                           |    5 
 sw/inc/doc.hxx                                                                              |   38 
 sw/inc/docsh.hxx                                                                            |    6 
 sw/inc/fesh.hxx                                                                             |    2 
 sw/inc/fldbas.hxx                                                                           |   12 
 sw/inc/frmfmt.hxx                                                                           |   11 
 sw/inc/index.hrc                                                                            |    8 
 sw/inc/mdiexp.hxx                                                                           |    1 
 sw/inc/ndole.hxx                                                                            |    1 
 sw/inc/node.hxx                                                                             |    8 
 sw/inc/tblsel.hxx                                                                           |    3 
 sw/inc/viewsh.hxx                                                                           |    1 
 sw/source/core/access/acccell.cxx                                                           |  199 +
 sw/source/core/access/acccell.hxx                                                           |   45 
 sw/source/core/access/acccontext.cxx                                                        |   78 
 sw/source/core/access/acccontext.hxx                                                        |   12 
 sw/source/core/access/accdoc.cxx                                                            |  520 ++-
 sw/source/core/access/accdoc.hxx                                                            |   27 
 sw/source/core/access/accembedded.cxx                                                       |   59 
 sw/source/core/access/accembedded.hxx                                                       |   22 
 sw/source/core/access/accfield.cxx                                                          |  314 +
 sw/source/core/access/accfield.hxx                                                          |  175 +
 sw/source/core/access/accfootnote.cxx                                                       |   12 
 sw/source/core/access/accfootnote.hxx                                                       |    1 
 sw/source/core/access/accframe.cxx                                                          |    5 
 sw/source/core/access/accframe.hxx                                                          |    7 
 sw/source/core/access/accframebase.cxx                                                      |  153 
 sw/source/core/access/accframebase.hxx                                                      |    5 
 sw/source/core/access/accfrmobj.cxx                                                         |   19 
 sw/source/core/access/accfrmobj.hxx                                                         |    2 
 sw/source/core/access/accfrmobjmap.hxx                                                      |   37 
 sw/source/core/access/accgraphic.cxx                                                        |   12 
 sw/source/core/access/accgraphic.hxx                                                        |    2 
 sw/source/core/access/accheaderfooter.cxx                                                   |   15 
 sw/source/core/access/accheaderfooter.hxx                                                   |    3 
 sw/source/core/access/acchyperlink.cxx                                                      |   92 
 sw/source/core/access/accmap.cxx                                                            | 1043 +++++-
 sw/source/core/access/accnotextframe.cxx                                                    |  154 
 sw/source/core/access/accnotextframe.hxx                                                    |   56 
 sw/source/core/access/accnotexthyperlink.cxx                                                |  225 +
 sw/source/core/access/accnotexthyperlink.hxx                                                |   83 
 sw/source/core/access/accpara.cxx                                                           | 1725 +++++++++-
 sw/source/core/access/accpara.hxx                                                           |   52 
 sw/source/core/access/accportions.cxx                                                       |  114 
 sw/source/core/access/accportions.hxx                                                       |   39 
 sw/source/core/access/accpreview.cxx                                                        |   21 
 sw/source/core/access/accpreview.hxx                                                        |    4 
 sw/source/core/access/accselectionhelper.cxx                                                |   93 
 sw/source/core/access/acctable.cxx                                                          |  313 +
 sw/source/core/access/acctable.hxx                                                          |   24 
 sw/source/core/access/acctextframe.cxx                                                      |  118 
 sw/source/core/access/acctextframe.hxx                                                      |   40 
 sw/source/core/attr/format.cxx                                                              |    2 
 sw/source/core/crsr/crsrsh.cxx                                                              |   69 
 sw/source/core/doc/tblcpy.cxx                                                               |    3 
 sw/source/core/docnode/node.cxx                                                             |   63 
 sw/source/core/docnode/nodes.cxx                                                            |    9 
 sw/source/core/frmedt/feshview.cxx                                                          |   20 
 sw/source/core/frmedt/tblsel.cxx                                                            |    9 
 sw/source/core/inc/SwPortionHandler.hxx                                                     |    2 
 sw/source/core/inc/doctxm.hxx                                                               |    2 
 sw/source/core/inc/frame.hxx                                                                |   12 
 sw/source/core/inc/txtfrm.hxx                                                               |    2 
 sw/source/core/inc/viewimp.hxx                                                              |    4 
 sw/source/core/layout/atrfrm.cxx                                                            |   17 
 sw/source/core/layout/tabfrm.cxx                                                            |   22 
 sw/source/core/layout/wsfrm.cxx                                                             |    1 
 sw/source/core/ole/ndole.cxx                                                                |    8 
 sw/source/core/text/frmform.cxx                                                             |   45 
 sw/source/core/text/porfld.cxx                                                              |    5 
 sw/source/core/text/porfld.hxx                                                              |    1 
 sw/source/core/text/txtfld.cxx                                                              |   41 
 sw/source/core/unocore/unomap.cxx                                                           |   34 
 sw/source/core/view/viewimp.cxx                                                             |   18 
 sw/source/filter/ww8/wrtw8esh.cxx                                                           |    2 
 sw/source/ui/app/docsh.cxx                                                                  |   52 
 sw/source/ui/cctrl/actctrl.cxx                                                              |    3 
 sw/source/ui/chrdlg/swuiccoll.cxx                                                           |   13 
 sw/source/ui/dialog/uiregionsw.cxx                                                          |    1 
 sw/source/ui/docvw/edtwin.cxx                                                               |   13 
 sw/source/ui/docvw/edtwin3.cxx                                                              |   27 
 sw/source/ui/frmdlg/column.cxx                                                              |   26 
 sw/source/ui/frmdlg/frmpage.cxx                                                             |   12 
 sw/source/ui/inc/cnttab.hxx                                                                 |    5 
 sw/source/ui/inc/conttree.hxx                                                               |    9 
 sw/source/ui/inc/edtwin.hxx                                                                 |    1 
 sw/source/ui/inc/pview.hxx                                                                  |   13 
 sw/source/ui/inc/swlbox.hxx                                                                 |    1 
 sw/source/ui/inc/swuicnttab.hxx                                                             |    9 
 sw/source/ui/inc/view.hxx                                                                   |    3 
 sw/source/ui/index/cnttab.cxx                                                               |  136 
 sw/source/ui/index/cnttab.src                                                               |   50 
 sw/source/ui/ribbar/inputwin.cxx                                                            |    6 
 sw/source/ui/ribbar/inputwin.hrc                                                            |    3 
 sw/source/ui/ribbar/inputwin.src                                                            |   17 
 sw/source/ui/ribbar/workctrl.cxx                                                            |    7 
 sw/source/ui/shells/textsh1.cxx                                                             |   51 
 sw/source/ui/shells/txtnum.cxx                                                              |    4 
 sw/source/ui/uiview/pview.cxx                                                               |  188 -
 sw/source/ui/uiview/view.cxx                                                                |    1 
 sw/source/ui/uiview/view2.cxx                                                               |   30 
 sw/source/ui/uiview/viewsrch.cxx                                                            |   45 
 sw/source/ui/utlui/content.cxx                                                              |  386 ++
 sw/source/ui/utlui/navipi.hrc                                                               |    3 
 sw/source/ui/wrtsh/select.cxx                                                               |    7 
 toolkit/source/awt/vclxaccessiblecomponent.cxx                                              |   39 
 toolkit/source/awt/vclxwindows.cxx                                                          |   22 
 vcl/aqua/source/a11y/aqua11yactionwrapper.mm                                                |    2 
 vcl/aqua/source/a11y/aqua11yrolehelper.mm                                                   |   14 
 vcl/inc/ilstbox.hxx                                                                         |   14 
 vcl/inc/pch/precompiled_vcl.hxx                                                             |    1 
 vcl/inc/svdata.hxx                                                                          |    2 
 vcl/inc/svids.hrc                                                                           |   10 
 vcl/inc/win/saldata.hxx                                                                     |    2 
 vcl/source/app/settings.cxx                                                                 |    3 
 vcl/source/app/svapp.cxx                                                                    |   10 
 vcl/source/app/svdata.cxx                                                                   |  255 -
 vcl/source/control/combobox.cxx                                                             |   12 
 vcl/source/control/edit.cxx                                                                 |   31 
 vcl/source/control/ilstbox.cxx                                                              |   21 
 vcl/source/control/lstbox.cxx                                                               |   33 
 vcl/source/control/morebtn.cxx                                                              |    5 
 vcl/source/control/tabctrl.cxx                                                              |    3 
 vcl/source/edit/vclmedit.cxx                                                                |    2 
 vcl/source/src/stdtext.src                                                                  |   50 
 vcl/source/window/btndlg.cxx                                                                |    7 
 vcl/source/window/dlgctrl.cxx                                                               |    8 
 vcl/source/window/menu.cxx                                                                  |   48 
 vcl/source/window/toolbox.cxx                                                               |    5 
 vcl/source/window/toolbox2.cxx                                                              |    3 
 vcl/unx/gtk/a11y/atkwrapper.cxx                                                             |    5 
 vcl/win/source/gdi/salgdi.cxx                                                               |    7 
 vcl/win/source/window/salframe.cxx                                                          |    4 
 winaccessibility/Module_winaccessibility.mk                                                 |    4 
 winaccessibility/source/UAccCOM/MAccessible.cxx                                             |    3 
 winaccessibility/source/service/AccObjectWinManager.cxx                                     |    5 
 winaccessibility/source/service/AccTopWindowListener.cxx                                    |    5 
 531 files changed, 23271 insertions(+), 14760 deletions(-)

New commits:
commit 4e4d17fb5cc06387554c69d075fc063bedfb55d8
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Jun 3 23:36:18 2014 +0300

    Avoid accessing freed memory and freeing already freed resources
    
    Seen in smoketest a 4.2-based branch, but might perhaps happen in master
    too. Should not hurt in any case to be more careful. ImplFreeSalGDI() is
    called both from SalAbort() and from DestroySalInstance().
    
    Change-Id: Ifac37e8ecfb432848bd3451dbda8634c59a06fba

diff --git a/vcl/inc/win/saldata.hxx b/vcl/inc/win/saldata.hxx
index d1464d5..1d54637 100644
--- a/vcl/inc/win/saldata.hxx
+++ b/vcl/inc/win/saldata.hxx
@@ -70,6 +70,8 @@ public:
     // checks if the menuhandle was created by VCL
     sal_Bool    IsKnownMenuHandle( HMENU hMenu );
 
+    bool                    mbResourcesAlreadyFreed;
+
 public:
     HINSTANCE               mhInst;                 // default instance handle
     HINSTANCE               mhPrevInst;             // previous instance handle
diff --git a/vcl/win/source/gdi/salgdi.cxx b/vcl/win/source/gdi/salgdi.cxx
index e3a660f..5d1cd35 100644
--- a/vcl/win/source/gdi/salgdi.cxx
+++ b/vcl/win/source/gdi/salgdi.cxx
@@ -136,6 +136,8 @@ void ImplInitSalGDI()
 {
     SalData* pSalData = GetSalData();
 
+    pSalData->mbResourcesAlreadyFreed = false;
+
     // init stock brushes
     pSalData->maStockPenColorAry[0]     = PALETTERGB( 0, 0, 0 );
     pSalData->maStockPenColorAry[1]     = PALETTERGB( 0xFF, 0xFF, 0xFF );
@@ -315,6 +317,9 @@ void ImplFreeSalGDI()
 {
     SalData*    pSalData = GetSalData();
 
+    if (pSalData->mbResourcesAlreadyFreed)
+        return;
+
     // destroy stock objects
     int i;
     for ( i = 0; i < pSalData->mnStockPenCount; i++ )
@@ -381,6 +386,8 @@ void ImplFreeSalGDI()
 
     // delete temporary font list
     ImplReleaseTempFonts( *pSalData );
+
+    pSalData->mbResourcesAlreadyFreed = true;
 }
 
 // -----------------------------------------------------------------------
commit 276fb5136d142887e981aa6858735a47af9d7bf5
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 26 23:08:21 2013 +0100

    adapt sfx2 UndoManager test to renaming from "click" to "press"
    
    RID_STR_ACC_ACTION_CLICK in efb23f29983f87104a684e7fab00b84fc59d131d
    
    Change-Id: If684816602db38fa87b6272c0491ab2ac910aece

diff --git a/sfx2/qa/complex/sfx2/UndoManager.java b/sfx2/qa/complex/sfx2/UndoManager.java
index 69c9dd2..901c6c4 100644
--- a/sfx2/qa/complex/sfx2/UndoManager.java
+++ b/sfx2/qa/complex/sfx2/UndoManager.java
@@ -429,13 +429,13 @@ public class UndoManager
         final XAccessibleAction controlActions = UnoRuntime.queryInterface( XAccessibleAction.class, accessible.getAccessibleContext() );
         for ( int i=0; i<controlActions.getAccessibleActionCount(); ++i )
         {
-            if ( controlActions.getAccessibleActionDescription(i).equals( "click" ) )
+            if (controlActions.getAccessibleActionDescription(i).equals("press"))
             {
                 controlActions.doAccessibleAction(i);
                 return;
             }
         }
-        fail( "did not find the accessible action named 'click'" );
+        fail("did not find the accessible action named 'press'");
     }
 
     // -----------------------------------------------------------------------------------------------------------------
commit 0534f04e91f92abaa75832bb90b199adb10353a5
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Nov 27 09:12:38 2013 +0100

    Revert sense in VCLXAccessibleBox::getAccessibleActionCount again
    
    ...this had been switched from "m_bIsDropDownBox ? 1 : 0" to "m_bIsDropDownBox ?
    0 : 1" in efb23f29983f87104a684e7fab00b84fc59d131d "Integrate branch of
    IAccessible2" for no apparent reason and broke JunitTest_testtools_unoapi.
    
    Change-Id: I276d2f452648387a5fa693349cf868787b2d48e1

diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx b/accessibility/source/standard/vclxaccessiblebox.cxx
index 2f40002..608f17f 100644
--- a/accessibility/source/standard/vclxaccessiblebox.cxx
+++ b/accessibility/source/standard/vclxaccessiblebox.cxx
@@ -409,7 +409,7 @@ sal_Int32 SAL_CALL VCLXAccessibleBox::getAccessibleActionCount (void)
 
     // There is one action for drop down boxes (toggle popup) and none for
     // the other boxes.
-    return m_bIsDropDownBox ? 0 : 1;
+    return m_bIsDropDownBox ? 1 : 0;
 }
 
 sal_Bool SAL_CALL VCLXAccessibleBox::doAccessibleAction (sal_Int32 nIndex)
commit 22efaf5f46a918adc4d404e74466713dafc20130
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Nov 27 11:28:57 2013 +0100

    IAccessible2: revert some bounds-checking changes again
    
    ...that were introduced with c23ab5eaed57cc3fb5860e26c591c73c5b22687b "Integrate
    branch of IAccessible2" but broke JunitTest_sc_unoapi, which expects calls to
    getCharacterAttributes and getIndexAtPoint to actually fail for out-of-bounds
    arguments.  The above commit does not make it obvious why those changes were
    actually made.
    
    Change-Id: I3492c3e6a49d68885df1206e9368f4483c0dc4f9

diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
index 7bd87b0..5a575be 100644
--- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx
+++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
@@ -1381,11 +1381,7 @@ namespace accessibility
         EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< sal_uInt16 >(GetParagraphIndex()) );
         if (aBulletInfo.bVisible)
             nIndex += aBulletInfo.aText.getLength();
-        if (nIndex != 0 && nIndex >= getCharacterCount())
-            nIndex = getCharacterCount()-1;
-        //
-        if (nIndex != 0)
-            CheckIndex(nIndex); // may throw IndexOutOfBoundsException
+        CheckIndex(nIndex); // may throw IndexOutOfBoundsException
 
         bool bSupplementalMode = false;
         uno::Sequence< OUString > aPropertyNames = rRequestedAttributes;
@@ -1534,9 +1530,6 @@ namespace accessibility
 
         SolarMutexGuard aGuard;
 
-        if ((rPoint.X <= 0) && (rPoint.Y <= 0))
-            return 0;
-
         sal_Int32 nPara;
         sal_uInt16 nIndex;
 
commit d8c0d479c8e5e45841e7e80c7412eeef7862eaa4
Author: Armin Le Grand <alg at apache.org>
Date:   Wed Nov 27 13:00:02 2013 +0000

    removed pCaptionObj from accessibility
    
    it was not initialized but accessed in one place. Checked with symphony code,
    there was a set method which is not in AOO trunk, thus solved accesses to zero
    pointer usage
    
    (cherry picked from commit bd0c3b940f6006d3cb49381230795db667aeb943)
    
    Conflicts:
    	svx/inc/svx/svdobj.hxx
    	svx/source/svdraw/svdobj.cxx
    
    Change-Id: Ic8dec5c6def35753d757066c7ea02e1a92b46f6c

diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index ee08d6b..f1b3dbb 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -357,7 +357,6 @@ protected:
     SdrObjUserCall*             pUserCall;
     SdrObjPlusData*             pPlusData;    // Broadcaster, UserData, Konnektoren, ... (Das ist der Bitsack)
 
-    SdrObject*  pCaptionObj;
     sal_uInt32                  nOrdNum;      // Rangnummer des Obj in der Liste
 
     SfxGrabBagItem*             pGrabBagItem; // Holds the GrabBagItem property
@@ -1036,7 +1035,6 @@ public:
     // #i121917#
     virtual bool HasText() const;
 
-    const SdrObject* GetCaptionObj() const;
 protected:
     /** Sets a new UNO shape
       *
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index 47d951d..a8419d8 100644
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -421,36 +421,27 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL
         throw (::com::sun::star::uno::RuntimeException)
 {
     ::osl::MutexGuard aGuard (maMutex);
-    ::utl::AccessibleRelationSetHelper* pRelationSet =
-        new utl::AccessibleRelationSetHelper;
-    SdrObject* pCaptionSdr = const_cast < SdrObject* > ( m_pShape->GetCaptionObj() )  ;
-    if(pCaptionSdr!=NULL)
-    {
-            uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
-            uno::Reference<drawing::XShape> xCaptionShape ( pCaptionSdr->getUnoShape(),uno::UNO_QUERY);
-            if(xCaptionShape.is())
-            {
-                aSequence[0] = mpParent->GetAccessibleCaption(xCaptionShape);
-                pRelationSet->AddRelation( AccessibleRelation( AccessibleRelationType::DESCRIBED_BY, aSequence ) );
-        }
-    }
-    else
+    ::utl::AccessibleRelationSetHelper* pRelationSet = new utl::AccessibleRelationSetHelper;
+    uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
+    aSequence[0] = mpParent->GetAccessibleCaption(mxShape);
+
+    //this mxshape is the captioned shape, only for sw
+    if(aSequence[0].get())
     {
-        //this mxshape is the captioned shape, only for sw
-        if(mpParent->GetAccessibleCaption(mxShape).get())
-        {
-            uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
-            aSequence[0] = mpParent->GetAccessibleCaption(mxShape);
-            pRelationSet->AddRelation( AccessibleRelation( AccessibleRelationType::DESCRIBED_BY, aSequence ) );
-        }
+        pRelationSet->AddRelation(
+            AccessibleRelation( AccessibleRelationType::DESCRIBED_BY, aSequence ) );
     }
-   if (pRelationSet != NULL)
+
+    if (pRelationSet != NULL)
     {
         return uno::Reference<XAccessibleRelationSet> (
             new ::utl::AccessibleRelationSetHelper (*pRelationSet));
     }
     else
+    {
         return uno::Reference<XAccessibleRelationSet>(NULL);
+    }
+
     return uno::Reference<XAccessibleRelationSet>();
 }
 
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 4016094..b495c5b 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -3128,11 +3128,6 @@ void SdrObject::notifyShapePropertyChange( const ::svx::ShapeProperty _eProperty
         return pSvxShape->getShapePropertyChangeNotifier().notifyPropertyChange( _eProperty );
 }
 
-const SdrObject* SdrObject::GetCaptionObj() const
-{
-    return pCaptionObj;
-}
-
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 //
 // transformation interface for StarOfficeAPI. This implements support for
commit 7e877e130fc05268bdd01c61cfbdd2489a74f7ab
Author: Tor Lillqvist <tml at collabora.com>
Date:   Thu Dec 5 21:02:39 2013 +0200

    I think SAL_FORCE_IACCESSIBLE2 is what is intended here
    
    Change-Id: If03696cfcc9a3d5053af881e00a4c6a484cbd445

diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
index 500e18d..d326335 100644
--- a/vcl/source/app/svdata.cxx
+++ b/vcl/source/app/svdata.cxx
@@ -295,7 +295,7 @@ bool ImplInitAccessBridge()
         css::uno::Reference< XComponentContext > xContext(comphelper::getProcessComponentContext());
 
 #ifdef _WIN32
-        if (!HasAtHook() && !getenv("SAL_DISABLE_IACCESSIBLE2"))
+        if (!HasAtHook() && !getenv("SAL_FORCE_IACCESSIBLE2"))
         {
             SAL_INFO("vcl", "Apparently no running AT -> "
                      "not enabling IAccessible2 integration");
commit 0e348a5c6cbccc7ac93fd405dc99e62dd2806fdc
Author: Steve Yin <steve_y at apache.org>
Date:   Tue Dec 10 07:58:01 2013 +0000

    Resolves: #i123620# IAccessibleHypertext::hyperlinkIndex returns 0...
    
    when editing a cell/object where there is no link
    
    (cherry picked from commit 552e71c2482b5911ac485c9331a4f354ba7150b5)
    
    Change-Id: I9be20b045d3472f15c98352928d45a1349cec5c4

diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
index e9941df..7bd87b0 100644
--- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx
+++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
@@ -2915,7 +2915,7 @@ namespace accessibility
 //        const sal_uInt16 nEEIndex = aIndex.GetEEIndex();
 
         const sal_uInt16 nEEIndex = rT.CalcEditEngineIndex( nPara, nCharIndex );
-        sal_Int32 nHLIndex = 0;
+        sal_Int32 nHLIndex = -1; //i123620
         sal_uInt16 nHyperLink = 0;
         sal_uInt16 nFields = rT.GetFieldCount( nPara );
         for ( sal_uInt16 n = 0; n < nFields; n++ )
commit 48d7e338624dc79165880846888e61f763e0f8a2
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Dec 12 18:10:56 2013 +0100

    Only call ScAccessibleCell::Init once on freshly created cells
    
    Change-Id: I64542af7585cea9d361a99f83e110e1e8135bf2d

diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx b/sc/source/ui/Accessibility/AccessibleCell.cxx
index 626748b..b69279e 100644
--- a/sc/source/ui/Accessibility/AccessibleCell.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCell.cxx
@@ -50,7 +50,19 @@
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::accessibility;
 
-//=====  internal  ============================================================
+rtl::Reference<ScAccessibleCell> ScAccessibleCell::create(
+        const uno::Reference<XAccessible>& rxParent,
+        ScTabViewShell* pViewShell,
+        ScAddress& rCellAddress,
+        sal_Int32 nIndex,
+        ScSplitPos eSplitPos,
+        ScAccessibleDocument* pAccDoc)
+{
+    rtl::Reference<ScAccessibleCell> x(new ScAccessibleCell(
+        rxParent, pViewShell, rCellAddress, nIndex, eSplitPos, pAccDoc));
+    x->Init();
+    return x;
+}
 
 ScAccessibleCell::ScAccessibleCell(
         const uno::Reference<XAccessible>& rxParent,
diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index 8f70b07..0960a37 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -258,7 +258,6 @@ ScAccessibleSpreadsheet::ScAccessibleSpreadsheet(
     mbIsSpreadsheet( sal_True ),
     m_bFormulaMode(sal_False),
     m_bFormulaLastMode(sal_False),
-    m_pAccFormulaCell(NULL),
     m_nMinX(0),m_nMaxX(0),m_nMinY(0),m_nMaxY(0)
 {
     ConstructScAccessibleSpreadsheet( pAccDoc, pViewShell, nTab, eSplitPos );
@@ -289,7 +288,7 @@ void ScAccessibleSpreadsheet::ConstructScAccessibleSpreadsheet(
     mpMarkedRanges = 0;
     mpSortedMarkedCells = 0;
     mpAccDoc = pAccDoc;
-    mpAccCell = 0;
+    mpAccCell.clear();
     meSplitPos = eSplitPos;
     mnTab = nTab;
     mbHasSelection = false;
@@ -306,8 +305,6 @@ void ScAccessibleSpreadsheet::ConstructScAccessibleSpreadsheet(
         mbHasSelection = rMarkData.GetTableSelect(maActiveCell.Tab()) &&
                     (rMarkData.IsMarked() || rMarkData.IsMultiMarked());
         mpAccCell = GetAccessibleCellAt(maActiveCell.Row(), maActiveCell.Col());
-        mpAccCell->acquire();
-        mpAccCell->Init();
         ScDocument* pScDoc= GetDocument(mpViewShell);
         if (pScDoc)
         {
@@ -324,11 +321,7 @@ void SAL_CALL ScAccessibleSpreadsheet::disposing()
         mpViewShell->RemoveAccessibilityObject(*this);
         mpViewShell = NULL;
     }
-    if (mpAccCell)
-    {
-        mpAccCell->release();
-        mpAccCell = NULL;
-    }
+    mpAccCell.clear();
 
     ScAccessibleTableBase::disposing();
 }
@@ -359,8 +352,7 @@ void ScAccessibleSpreadsheet::LostFocus()
     AccessibleEventObject aEvent;
     aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
     aEvent.Source = uno::Reference< XAccessibleContext >(this);
-    uno::Reference< XAccessible > xOld = mpAccCell;
-    aEvent.OldValue <<= xOld;
+    aEvent.OldValue <<= uno::Reference<XAccessible>(mpAccCell.get());
 
     CommitChange(aEvent);
 
@@ -375,7 +367,7 @@ void ScAccessibleSpreadsheet::GotFocus()
     uno::Reference< XAccessible > xNew;
     if (IsFormulaMode())
     {
-        if (!m_pAccFormulaCell || !m_bFormulaLastMode)
+        if (!m_pAccFormulaCell.is() || !m_bFormulaLastMode)
         {
             ScAddress aFormulaAddr;
             if(!GetFormulaCurrentFocusCell(aFormulaAddr))
@@ -383,19 +375,14 @@ void ScAccessibleSpreadsheet::GotFocus()
                 return;
             }
             m_pAccFormulaCell = GetAccessibleCellAt(aFormulaAddr.Row(),aFormulaAddr.Col());
-
-            m_pAccFormulaCell->acquire();
-            m_pAccFormulaCell->Init();
-
-
         }
-        xNew = m_pAccFormulaCell;
+        xNew = m_pAccFormulaCell.get();
     }
     else
     {
         if(mpAccCell->GetCellAddress() == maActiveCell)
         {
-            xNew = mpAccCell;
+            xNew = mpAccCell.get();
         }
         else
         {
@@ -450,11 +437,7 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint
                 {//Last Notify Mode  Is Formula Mode.
                     m_vecFormulaLastMyAddr.clear();
                     RemoveFormulaSelection(sal_True);
-                    if(m_pAccFormulaCell)
-                    {
-                        m_pAccFormulaCell->release();
-                        m_pAccFormulaCell =NULL;
-                    }
+                    m_pAccFormulaCell.clear();
                     //Remove All Selection
                 }
                 m_bFormulaLastMode = m_bFormulaMode;
@@ -547,13 +530,12 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint
                     uno::Reference< XAccessible > xChild ;
                     if (bNewPosCellFocus)
                     {
-                        xChild = mpAccCell;
+                        xChild = mpAccCell.get();
                     }
                     else
                     {
                         mpAccCell = GetAccessibleCellAt(aNewCell.Row(),aNewCell.Col());
-                        xChild = mpAccCell;
-                        mpAccCell->Init();
+                        xChild = mpAccCell.get();
 
                         maActiveCell = aNewCell;
                         aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS;
@@ -728,8 +710,7 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint
                 AccessibleEventObject aEvent;
                 aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
                 aEvent.Source = uno::Reference< XAccessibleContext >(this);
-                uno::Reference< XAccessible > xNew = mpAccCell;
-                aEvent.NewValue <<= xNew;
+                aEvent.NewValue <<= uno::Reference<XAccessible>(mpAccCell.get());
 
                 CommitChange(aEvent);
             }
@@ -772,15 +753,10 @@ void ScAccessibleSpreadsheet::CommitFocusCell(const ScAddress &aNewCell)
     AccessibleEventObject aEvent;
     aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
     aEvent.Source = uno::Reference< XAccessible >(this);
-    uno::Reference< XAccessible > xOld = mpAccCell;
-    mpAccCell->release();
-    mpAccCell=NULL;
-    aEvent.OldValue <<= xOld;
+    aEvent.OldValue <<= uno::Reference<XAccessible>(mpAccCell.get());
+    mpAccCell.clear();
     mpAccCell = GetAccessibleCellAt(aNewCell.Row(), aNewCell.Col());
-    mpAccCell->acquire();
-    mpAccCell->Init();
-    uno::Reference< XAccessible > xNew = mpAccCell;
-    aEvent.NewValue <<= xNew;
+    aEvent.NewValue <<= uno::Reference<XAccessible>(mpAccCell.get());
     maActiveCell = aNewCell;
     ScDocument* pScDoc= GetDocument(mpViewShell);
     if (pScDoc)
@@ -941,32 +917,29 @@ sal_Bool SAL_CALL ScAccessibleSpreadsheet::isAccessibleColumnSelected( sal_Int32
     return bResult;
 }
 
-ScAccessibleCell* ScAccessibleSpreadsheet::GetAccessibleCellAt(sal_Int32 nRow, sal_Int32 nColumn)
+rtl::Reference<ScAccessibleCell> ScAccessibleSpreadsheet::GetAccessibleCellAt(sal_Int32 nRow, sal_Int32 nColumn)
 {
-    ScAccessibleCell* pAccessibleCell = NULL;
     if (IsFormulaMode())
     {
         ScAddress aCellAddress(static_cast<SCCOL>(nColumn), nRow, mpViewShell->GetViewData()->GetTabNo());
-        if ((aCellAddress == m_aFormulaActiveCell) && m_pAccFormulaCell)
+        if ((aCellAddress == m_aFormulaActiveCell) && m_pAccFormulaCell.is())
         {
-            pAccessibleCell = m_pAccFormulaCell;
+            return m_pAccFormulaCell;
         }
         else
-            pAccessibleCell = new ScAccessibleCell(this, mpViewShell, aCellAddress, GetAccessibleIndexFormula(nRow, nColumn), meSplitPos, mpAccDoc);
+            return ScAccessibleCell::create(this, mpViewShell, aCellAddress, GetAccessibleIndexFormula(nRow, nColumn), meSplitPos, mpAccDoc);
     }
     else
     {
         ScAddress aCellAddress(static_cast<SCCOL>(maRange.aStart.Col() + nColumn),
             static_cast<SCROW>(maRange.aStart.Row() + nRow), maRange.aStart.Tab());
-        if ((aCellAddress == maActiveCell) && mpAccCell)
+        if ((aCellAddress == maActiveCell) && mpAccCell.is())
         {
-            pAccessibleCell = mpAccCell;
+            return mpAccCell;
         }
         else
-            pAccessibleCell = new ScAccessibleCell(this, mpViewShell, aCellAddress, getAccessibleIndex(nRow, nColumn), meSplitPos, mpAccDoc);
+            return ScAccessibleCell::create(this, mpViewShell, aCellAddress, getAccessibleIndex(nRow, nColumn), meSplitPos, mpAccDoc);
     }
-
-    return pAccessibleCell;
 }
 
 uno::Reference< XAccessible > SAL_CALL ScAccessibleSpreadsheet::getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn )
@@ -982,11 +955,8 @@ uno::Reference< XAccessible > SAL_CALL ScAccessibleSpreadsheet::getAccessibleCel
         nColumn < 0)
         throw lang::IndexOutOfBoundsException();
     }
-    uno::Reference<XAccessible> xAccessible;
-    ScAccessibleCell* pAccessibleCell = GetAccessibleCellAt(nRow, nColumn);
-    xAccessible = pAccessibleCell;
-    pAccessibleCell->Init();
-    return xAccessible;
+    rtl::Reference<ScAccessibleCell> pAccessibleCell = GetAccessibleCellAt(nRow, nColumn);
+    return pAccessibleCell.get();
 }
 
 sal_Bool SAL_CALL ScAccessibleSpreadsheet::isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn )
@@ -1621,12 +1591,9 @@ void ScAccessibleSpreadsheet::NotifyRefMode()
         aEvent.Source = uno::Reference< XAccessible >(this);
         aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
         aEvent.Source = uno::Reference< XAccessible >(this);
-        uno::Reference< XAccessible > xOld = m_pAccFormulaCell;
-        aEvent.OldValue <<= xOld;
+        aEvent.OldValue <<= uno::Reference<XAccessible>(m_pAccFormulaCell.get());
         m_pAccFormulaCell = GetAccessibleCellAt(aFormulaAddr.Row(), aFormulaAddr.Col());
-        m_pAccFormulaCell->acquire();
-        m_pAccFormulaCell->Init();
-        uno::Reference< XAccessible > xNew = m_pAccFormulaCell;
+        uno::Reference< XAccessible > xNew = m_pAccFormulaCell.get();
         aEvent.NewValue <<= xNew;
         CommitChange(aEvent);
         if (nRefStartX == nRefEndX && nRefStartY == nRefEndY)
@@ -1671,7 +1638,7 @@ void ScAccessibleSpreadsheet::NotifyRefMode()
                     uno::Reference< XAccessible > xChild;
                     if (*viAddr == aFormulaAddr)
                     {
-                        xChild = m_pAccFormulaCell;
+                        xChild = m_pAccFormulaCell.get();
                     }
                     else
                     {
diff --git a/sc/source/ui/inc/AccessibleCell.hxx b/sc/source/ui/inc/AccessibleCell.hxx
index bd8185d..dd53521 100644
--- a/sc/source/ui/inc/AccessibleCell.hxx
+++ b/sc/source/ui/inc/AccessibleCell.hxx
@@ -26,6 +26,7 @@
 #include "viewdata.hxx"
 #include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
 #include <com/sun/star/accessibility/XAccessibleRelationSet.hpp>
+#include <rtl/ref.hxx>
 #include <unotools/accessiblerelationsethelper.hxx>
 #include <editeng/AccessibleStaticTextBase.hxx>
 #include <comphelper/uno3.hxx>
@@ -46,7 +47,16 @@ class ScAccessibleCell
         public  ScAccessibleCellAttributeImpl
 {
 public:
-    //=====  internal  ========================================================
+    static rtl::Reference<ScAccessibleCell> create(
+        const ::com::sun::star::uno::Reference<
+        ::com::sun::star::accessibility::XAccessible>& rxParent,
+        ScTabViewShell* pViewShell,
+        ScAddress& rCellAddress,
+        sal_Int32 nIndex,
+        ScSplitPos eSplitPos,
+        ScAccessibleDocument* pAccDoc);
+
+private:
     ScAccessibleCell(
         const ::com::sun::star::uno::Reference<
         ::com::sun::star::accessibility::XAccessible>& rxParent,
diff --git a/sc/source/ui/inc/AccessibleSpreadsheet.hxx b/sc/source/ui/inc/AccessibleSpreadsheet.hxx
index 56749be..b2354aa 100644
--- a/sc/source/ui/inc/AccessibleSpreadsheet.hxx
+++ b/sc/source/ui/inc/AccessibleSpreadsheet.hxx
@@ -21,6 +21,10 @@
 #ifndef _SC_ACCESSIBLESPREADSHEET_HXX
 #define _SC_ACCESSIBLESPREADSHEET_HXX
 
+#include <sal/config.h>
+
+#include <rtl/ref.hxx>
+
 #include "AccessibleTableBase.hxx"
 #include "viewdata.hxx"
 
@@ -92,6 +96,7 @@ public:
     void BoundingBoxChanged();
     void VisAreaChanged();
 
+private:
     ///=====  SfxListener  =====================================================
     virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
 
@@ -135,7 +140,7 @@ public:
                     throw (::com::sun::star::uno::RuntimeException,
                             ::com::sun::star::lang::IndexOutOfBoundsException);
 
-    ScAccessibleCell* GetAccessibleCellAt(sal_Int32 nRow, sal_Int32 nColumn);
+    rtl::Reference<ScAccessibleCell> GetAccessibleCellAt(sal_Int32 nRow, sal_Int32 nColumn);
 
     /// Returns a boolean value indicating whether the accessible at a specified row and column is selected.
     virtual sal_Bool SAL_CALL
@@ -258,7 +263,7 @@ private:
     ScRangeList*    mpMarkedRanges;
     std::vector<ScMyAddress>* mpSortedMarkedCells;
     ScAccessibleDocument* mpAccDoc;
-    ScAccessibleCell*   mpAccCell;
+    rtl::Reference<ScAccessibleCell> mpAccCell;
     Rectangle       maVisCells;
     ScSplitPos      meSplitPos;
     ScAddress       maActiveCell;
@@ -300,7 +305,7 @@ private:
     ScAddress m_aFormulaActiveCell;
     MAP_ADDR_XACC m_mapFormulaSelectionSend;
     VEC_MYADDR m_vecFormulaLastMyAddr;
-    ScAccessibleCell*   m_pAccFormulaCell;
+    rtl::Reference<ScAccessibleCell> m_pAccFormulaCell;
     sal_uInt16 m_nMinX;
     sal_uInt16 m_nMaxX;
     sal_Int32 m_nMinY;
commit 6abe5b2bfc05cd893c4ad9ad23b5ab867aeabfb2
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Dec 12 00:29:42 2013 +0100

    Keep maActiveCell, mpAccCell in sync
    
    Otherwise ScAccessibleSpreadsheet::GetAccessibleCellAt could return wrong results
    and JunitTest_sc_unoapi would fail at least on Mac OS X.
    
    Change-Id: I65e9231920d13393a6991db318d330ee42a985d4

diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index f610824..8f70b07 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -551,7 +551,9 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint
                     }
                     else
                     {
-                        xChild = getAccessibleCellAt(aNewCell.Row(),aNewCell.Col());
+                        mpAccCell = GetAccessibleCellAt(aNewCell.Row(),aNewCell.Col());
+                        xChild = mpAccCell;
+                        mpAccCell->Init();
 
                         maActiveCell = aNewCell;
                         aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS;
commit be8c5475e6299a4ad8f62e20fa28bb510acafd04
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Dec 16 15:35:59 2013 +0100

    accessibility: Mutex cleanup in AccessibleGridControl* classes
    
    For unknown reasons this uses both SolarMutex and a OBaseMutex::m_aMutex
    to lock some but not all methods, which seems odd.
    
    - remove a third mutex AccessibleGridControl::m_aMutex that appears
      unused
    - lock OBaseMutex::m_aMutex in AccessibleGridControlBase::isAlive()
      which accesses rBHelper members, which should be sufficient
    - lock SolarMutex in all UNO methods
    - remove misc weird stuff like TC_SolarMethodGuard
    
    Change-Id: I8321757fb4a5043a05c23f2dc9801f5d8c8d911e

diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
index 5616117..8996a64 100644
--- a/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
@@ -193,7 +193,6 @@ class AccessibleGridControlAccess :public AccessibleGridControlAccess_Base
     ,public ::svt::table::IAccessibleTableControl
 {
 private:
-    ::osl::Mutex                m_aMutex;
     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
                                         m_xParent;
     ::svt::table::IAccessibleTable *    m_pTable;
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx
index 52fdce8..fb130c3 100644
--- a/accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx
@@ -286,11 +286,6 @@ protected:
     void ensureIsAlive() const
         throw ( ::com::sun::star::lang::DisposedException );
 
-    /** @return  The ::osl::Mutex member provided by the class OBaseMutex. */
-    inline ::osl::Mutex& getOslMutex();
-    /** @return  Pointer to the global ::osl::Mutex. */
-    static inline ::osl::Mutex* getOslGlobalMutex();
-
     /** Changes the name of the object (flat assignment, no notify).
         @attention  This method requires a locked mutex. */
     inline void implSetName( const OUString& rName );
@@ -312,13 +307,6 @@ protected:
     ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; }
     void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; }
 
-public:
-    // public versions of internal helper methods, with access control
-    struct TC_AccessControl { friend class TC_SolarMethodGuard; private: TC_AccessControl() { } };
-
-    inline ::osl::Mutex&    getMutex( const TC_AccessControl& ) { return getOslMutex(); }
-    inline void             ensureIsAlive( const TC_AccessControl& ) { ensureIsAlive(); }
-
 protected:
     // members ----------------------------------------------------------------
 
@@ -387,23 +375,6 @@ private:
     GridControlAccessibleElement& operator=( const GridControlAccessibleElement& ); // never implemented
 };
 
-// ============================================================================
-// a helper class for protecting methods which need to lock the solar mutex in addition to the own mutex
-
-typedef ::osl::MutexGuard OslMutexGuard;
-
-class TC_SolarMethodGuard : public SolarMutexGuard, public OslMutexGuard
-{
-public:
-    inline TC_SolarMethodGuard( AccessibleGridControlBase& _rOwner, bool _bEnsureAlive = true )
-        : SolarMutexGuard(),
-        OslMutexGuard( _rOwner.getMutex( AccessibleGridControlBase::TC_AccessControl() ) )
-    {
-        if ( _bEnsureAlive )
-            _rOwner.ensureIsAlive( AccessibleGridControlBase::TC_AccessControl() );
-    }
-};
-
 // inlines --------------------------------------------------------------------
 
 inline ::svt::table::AccessibleTableControlObjType AccessibleGridControlBase::getType() const
@@ -411,16 +382,6 @@ inline ::svt::table::AccessibleTableControlObjType AccessibleGridControlBase::ge
     return m_eObjType;
 }
 
-inline ::osl::Mutex& AccessibleGridControlBase::getOslMutex()
-{
-    return m_aMutex;
-}
-
-inline ::osl::Mutex* AccessibleGridControlBase::getOslGlobalMutex()
-{
-    return ::osl::Mutex::getGlobalMutex();
-}
-
 inline void AccessibleGridControlBase::implSetName(
         const OUString& rName )
 {
diff --git a/accessibility/source/extended/AccessibleGridControl.cxx b/accessibility/source/extended/AccessibleGridControl.cxx
index 9947183..5ee23f6 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -87,7 +87,7 @@ AccessibleGridControl::~AccessibleGridControl()
 
 void SAL_CALL AccessibleGridControl::disposing()
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
 
     m_pImpl->m_pTable       = NULL;
     m_pImpl->m_pColumnHeaderBar = NULL;
@@ -122,7 +122,6 @@ sal_Int32 SAL_CALL AccessibleGridControl::getAccessibleChildCount()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
     ensureIsAlive();
     return m_aTable.GetAccessibleControlCount();
 }
@@ -133,7 +132,6 @@ AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex )
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
 
     if (nChildIndex<0 || nChildIndex>=getAccessibleChildCount())
         throw IndexOutOfBoundsException();
@@ -177,6 +175,8 @@ AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex )
 sal_Int16 SAL_CALL AccessibleGridControl::getAccessibleRole()
     throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return AccessibleRole::PANEL;
 }
@@ -189,7 +189,6 @@ AccessibleGridControl::getAccessibleAtPoint( const awt::Point& rPoint )
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
     ensureIsAlive();
 
     Reference< XAccessible > xChild;
@@ -220,7 +219,6 @@ void SAL_CALL AccessibleGridControl::grabFocus()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
     ensureIsAlive();
         m_aTable.GrabFocus();
 }
@@ -229,6 +227,8 @@ void SAL_CALL AccessibleGridControl::grabFocus()
 Any SAL_CALL AccessibleGridControl::getAccessibleKeyBinding()
     throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return Any();
 }
@@ -423,7 +423,7 @@ AccessibleGridControlAccess::~AccessibleGridControlAccess()
 // -----------------------------------------------------------------------------
 void AccessibleGridControlAccess::DisposeAccessImpl()
 {
-    ::osl::MutexGuard aGuard( m_aMutex );
+    SolarMutexGuard g;
 
     m_pTable = 0;
     m_pContext = NULL;
@@ -433,7 +433,7 @@ void AccessibleGridControlAccess::DisposeAccessImpl()
 // -----------------------------------------------------------------------------
 Reference< XAccessibleContext > SAL_CALL AccessibleGridControlAccess::getAccessibleContext() throw ( RuntimeException )
 {
-    ::osl::MutexGuard aGuard( m_aMutex );
+    SolarMutexGuard g;
 
     OSL_ENSURE( ( m_pContext && m_xContext.is() ) || ( !m_pContext && !m_xContext.is() ),
         "accessibility/extended/AccessibleGridControlAccess::getAccessibleContext: inconsistency!" );
diff --git a/accessibility/source/extended/AccessibleGridControlBase.cxx b/accessibility/source/extended/AccessibleGridControlBase.cxx
index 553ccbb..8df5cf6 100644
--- a/accessibility/source/extended/AccessibleGridControlBase.cxx
+++ b/accessibility/source/extended/AccessibleGridControlBase.cxx
@@ -72,7 +72,7 @@ AccessibleGridControlBase::~AccessibleGridControlBase()
 
 void SAL_CALL AccessibleGridControlBase::disposing()
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
 
     if ( getClientId( ) )
     {
@@ -90,7 +90,8 @@ void SAL_CALL AccessibleGridControlBase::disposing()
 Reference< XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleParent()
     throw ( uno::RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return m_xParent;
 }
@@ -98,7 +99,8 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleParent
 sal_Int32 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
     throw ( uno::RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
 
     // -1 for child not found/no parent (according to specification)
@@ -133,7 +135,8 @@ sal_Int32 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
 OUString SAL_CALL AccessibleGridControlBase::getAccessibleDescription()
     throw ( uno::RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return m_aDescription;
 }
@@ -141,7 +144,8 @@ OUString SAL_CALL AccessibleGridControlBase::getAccessibleDescription()
 OUString SAL_CALL AccessibleGridControlBase::getAccessibleName()
     throw ( uno::RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return m_aName;
 }
@@ -150,6 +154,8 @@ Reference< XAccessibleRelationSet > SAL_CALL
 AccessibleGridControlBase::getAccessibleRelationSet()
     throw ( uno::RuntimeException )
 {
+   SolarMutexGuard g;
+
    ensureIsAlive();
    // GridControl does not have relations.
    return new utl::AccessibleRelationSetHelper;
@@ -160,7 +166,7 @@ AccessibleGridControlBase::getAccessibleStateSet()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     // don't check whether alive -> StateSet may contain DEFUNC
     return implCreateStateSetHelper();
 }
@@ -168,7 +174,8 @@ AccessibleGridControlBase::getAccessibleStateSet()
 lang::Locale SAL_CALL AccessibleGridControlBase::getLocale()
     throw ( IllegalAccessibleComponentStateException, uno::RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
     if( m_xParent.is() )
     {
@@ -216,7 +223,7 @@ sal_Bool SAL_CALL AccessibleGridControlBase::isShowing()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     return implIsShowing();
 }
@@ -244,7 +251,8 @@ void SAL_CALL AccessibleGridControlBase::addAccessibleEventListener(
 {
     if ( _rxListener.is() )
     {
-        ::osl::MutexGuard aGuard( getOslMutex() );
+        SolarMutexGuard g;
+
         if ( !getClientId( ) )
             setClientId( AccessibleEventNotifier::registerClient( ) );
 
@@ -258,7 +266,8 @@ void SAL_CALL AccessibleGridControlBase::removeAccessibleEventListener(
 {
     if( _rxListener.is() && getClientId( ) )
     {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+        SolarMutexGuard g;
+
         sal_Int32 nListenerCount = AccessibleEventNotifier::removeEventListener( getClientId( ), _rxListener );
     if ( !nListenerCount )
     {
@@ -339,6 +348,7 @@ sal_Bool AccessibleGridControlBase::implIsShowing()
 
 sal_Bool AccessibleGridControlBase::isAlive() const
 {
+    ::osl::MutexGuard g(m_aMutex); // guards rBHelper members
     return !rBHelper.bDisposed && !rBHelper.bInDispose && &m_aTable;
 }
 
@@ -353,7 +363,6 @@ Rectangle AccessibleGridControlBase::getBoundingBox()
     throw ( lang::DisposedException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
     ensureIsAlive();
     Rectangle aRect = implGetBoundingBox();
     if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
@@ -367,7 +376,6 @@ Rectangle AccessibleGridControlBase::getBoundingBoxOnScreen()
     throw ( lang::DisposedException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
     ensureIsAlive();
     Rectangle aRect = implGetBoundingBoxOnScreen();
     if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
@@ -380,7 +388,8 @@ Rectangle AccessibleGridControlBase::getBoundingBoxOnScreen()
 void AccessibleGridControlBase::commitEvent(
         sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue )
 {
-    ::osl::ClearableMutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     if ( !getClientId( ) )
             // if we don't have a client id for the notifier, then we don't have listeners, then
             // we don't need to notify anything
@@ -441,7 +450,7 @@ Reference<XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleAtPoint
 sal_Int32 SAL_CALL AccessibleGridControlBase::getForeground(  ) throw (::com::sun::star::uno::RuntimeException)
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
 
     sal_Int32 nColor = 0;
@@ -466,7 +475,7 @@ sal_Int32 SAL_CALL AccessibleGridControlBase::getForeground(  ) throw (::com::su
 sal_Int32 SAL_CALL AccessibleGridControlBase::getBackground(  ) throw (::com::sun::star::uno::RuntimeException)
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     sal_Int32 nColor = 0;
     Window* pInst = m_aTable.GetWindowInstance();
@@ -498,6 +507,8 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER2( GridControlAccessibleElement, AccessibleGridCo
 
 Reference< XAccessibleContext > SAL_CALL GridControlAccessibleElement::getAccessibleContext() throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return this;
 }
diff --git a/accessibility/source/extended/AccessibleGridControlHeader.cxx b/accessibility/source/extended/AccessibleGridControlHeader.cxx
index 0bc1649..24f3116 100644
--- a/accessibility/source/extended/AccessibleGridControlHeader.cxx
+++ b/accessibility/source/extended/AccessibleGridControlHeader.cxx
@@ -64,7 +64,6 @@ AccessibleGridControlHeader::getAccessibleChild( sal_Int32 nChildIndex )
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
 
     if (nChildIndex<0 || nChildIndex>=getAccessibleChildCount())
         throw IndexOutOfBoundsException();
@@ -100,7 +99,7 @@ AccessibleGridControlHeader::getAccessibleAtPoint( const awt::Point& rPoint )
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
 
     sal_Int32 nRow = 0;
@@ -132,7 +131,7 @@ OUString SAL_CALL AccessibleGridControlHeader::getAccessibleRowDescription( sal_
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidRow( nRow );
     return OUString();  // no headers in headers
@@ -142,7 +141,7 @@ OUString SAL_CALL AccessibleGridControlHeader::getAccessibleColumnDescription( s
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidColumn( nColumn );
     return OUString();  // no headers in headers
@@ -151,6 +150,8 @@ OUString SAL_CALL AccessibleGridControlHeader::getAccessibleColumnDescription( s
 Reference< XAccessibleTable > SAL_CALL AccessibleGridControlHeader::getAccessibleRowHeaders()
     throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return NULL;        // no headers in headers
 }
@@ -158,6 +159,8 @@ Reference< XAccessibleTable > SAL_CALL AccessibleGridControlHeader::getAccessibl
 Reference< XAccessibleTable > SAL_CALL AccessibleGridControlHeader::getAccessibleColumnHeaders()
     throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return NULL;        // no headers in headers
 }
diff --git a/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx b/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
index 548c21b..f716a8a 100644
--- a/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
+++ b/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
@@ -45,7 +45,6 @@ AccessibleGridControlHeaderCell::AccessibleGridControlHeaderCell(sal_Int32 _nCol
 */
 ::utl::AccessibleStateSetHelper* AccessibleGridControlHeaderCell::implCreateStateSetHelper()
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
     ::utl::AccessibleStateSetHelper*
         pStateSetHelper = new ::utl::AccessibleStateSetHelper;
 
@@ -55,7 +54,6 @@ AccessibleGridControlHeaderCell::AccessibleGridControlHeaderCell(sal_Int32 _nCol
         if( implIsShowing() )
             pStateSetHelper->AddState( AccessibleStateType::SHOWING );
 
-        SolarMutexGuard aSolarGuard;
         pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
         pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
         pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
@@ -163,7 +161,8 @@ Rectangle AccessibleGridControlHeaderCell::implGetBoundingBoxOnScreen()
 sal_Int32 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleIndexInParent()
     throw ( RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
     sal_Int32 nIndex = m_nColumnRowId;
     return nIndex;
diff --git a/accessibility/source/extended/AccessibleGridControlTable.cxx b/accessibility/source/extended/AccessibleGridControlTable.cxx
index 3b08ead..5b31740 100644
--- a/accessibility/source/extended/AccessibleGridControlTable.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTable.cxx
@@ -58,7 +58,7 @@ AccessibleGridControlTable::getAccessibleChild( sal_Int32 nChildIndex )
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidIndex( nChildIndex );
     sal_Int32 nCount = getAccessibleChildCount();
@@ -95,7 +95,7 @@ AccessibleGridControlTable::getAccessibleAtPoint( const awt::Point& rPoint )
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
 
     Reference< XAccessible > xChild;
@@ -110,7 +110,7 @@ void SAL_CALL AccessibleGridControlTable::grabFocus()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     m_aTable.GrabFocus();
 }
@@ -128,7 +128,7 @@ OUString SAL_CALL AccessibleGridControlTable::getAccessibleRowDescription( sal_I
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidRow( nRow );
     return m_aTable.GetRowDescription( nRow );
@@ -138,7 +138,7 @@ OUString SAL_CALL AccessibleGridControlTable::getAccessibleColumnDescription( sa
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidColumn( nColumn );
     return m_aTable.GetColumnDescription( (sal_uInt16)nColumn );
@@ -147,7 +147,8 @@ OUString SAL_CALL AccessibleGridControlTable::getAccessibleColumnDescription( sa
 Reference< XAccessibleTable > SAL_CALL AccessibleGridControlTable::getAccessibleRowHeaders()
     throw ( uno::RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
     if(m_aTable.HasColHeader())
         return implGetHeaderBar( 1 );
@@ -158,7 +159,8 @@ Reference< XAccessibleTable > SAL_CALL AccessibleGridControlTable::getAccessible
 Reference< XAccessibleTable > SAL_CALL AccessibleGridControlTable::getAccessibleColumnHeaders()
     throw ( uno::RuntimeException )
 {
-    ::osl::MutexGuard aGuard( getOslMutex() );
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return implGetHeaderBar( 0 );
 }
@@ -167,7 +169,7 @@ Sequence< sal_Int32 > SAL_CALL AccessibleGridControlTable::getSelectedAccessible
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     Sequence< sal_Int32 > aSelSeq;
     implGetSelectedRows( aSelSeq );
@@ -186,7 +188,7 @@ sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleRowSelected( sal_Int32
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidRow( nRow );
     sal_Bool bSelected = sal_False;
@@ -215,7 +217,7 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlTable::getAccessibleCellA
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidAddress( nRow, nColumn );
     sal_Int32 nCount = getAccessibleChildCount();
@@ -239,7 +241,7 @@ sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleSelected(
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidAddress( nRow, nColumn );
     (void) nColumn;
@@ -250,7 +252,7 @@ void SAL_CALL AccessibleGridControlTable::selectAccessibleChild( sal_Int32 nChil
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidIndex( nChildIndex );
     sal_Int32 nColumns = m_aTable.GetColumnCount();
@@ -261,7 +263,7 @@ sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleChildSelected( sal_Int
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidIndex( nChildIndex );
     sal_Int32 nColumns = m_aTable.GetColumnCount();
@@ -272,7 +274,7 @@ void SAL_CALL AccessibleGridControlTable::clearAccessibleSelection()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     m_aTable.SelectAllRows( false );
 }
@@ -280,7 +282,7 @@ void SAL_CALL AccessibleGridControlTable::selectAllAccessibleChildren()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     Sequence< sal_Int32 > selectedRows = getSelectedAccessibleRows();
     for(int i=0;i<m_aTable.GetRowCount();i++)
@@ -290,7 +292,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTable::getSelectedAccessibleChildCount()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     Sequence< sal_Int32 > selectedRows = getSelectedAccessibleRows();
     sal_Int32 nColumns = m_aTable.GetColumnCount();
@@ -301,7 +303,7 @@ AccessibleGridControlTable::getSelectedAccessibleChild( sal_Int32 nSelectedChild
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     if(isAccessibleChildSelected(nSelectedChildIndex))
         return getAccessibleChild(nSelectedChildIndex);
@@ -314,7 +316,7 @@ void SAL_CALL AccessibleGridControlTable::deselectAccessibleChild(
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     (void)nSelectedChildIndex;
 }
diff --git a/accessibility/source/extended/AccessibleGridControlTableBase.cxx b/accessibility/source/extended/AccessibleGridControlTableBase.cxx
index f6d7570..737a59e 100644
--- a/accessibility/source/extended/AccessibleGridControlTableBase.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTableBase.cxx
@@ -58,7 +58,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleChildCount()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     sal_Int32 nChildren = 0;
     if(m_eObjType == TCTYPE_ROWHEADERBAR)
@@ -73,6 +73,8 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleChildCount()
 sal_Int16 SAL_CALL AccessibleGridControlTableBase::getAccessibleRole()
     throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return AccessibleRole::TABLE;
 }
@@ -83,7 +85,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRowCount()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     return  m_aTable.GetRowCount();
 }
@@ -92,7 +94,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnCount()
     throw ( uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     return m_aTable.GetColumnCount();
 }
@@ -102,7 +104,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRowExtentAt(
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidAddress( nRow, nColumn );
     return 1;   // merged cells not supported
@@ -113,7 +115,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnExtentAt(
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidAddress( nRow, nColumn );
     return 1;   // merged cells not supported
@@ -122,6 +124,8 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnExtentAt(
 Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleCaption()
     throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return NULL;    // not supported
 }
@@ -129,6 +133,8 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleC
 Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleSummary()
     throw ( uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     ensureIsAlive();
     return NULL;    // not supported
 }
@@ -138,7 +144,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleIndex(
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidAddress( nRow, nColumn );
     return implGetChildIndex( nRow, nColumn );
@@ -148,7 +154,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRow( sal_Int32 n
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidIndex( nChildIndex );
     return implGetRow( nChildIndex );
@@ -158,7 +164,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumn( sal_Int3
     throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
 {
     SolarMutexGuard aSolarGuard;
-    ::osl::MutexGuard aGuard( getOslMutex() );
+
     ensureIsAlive();
     ensureIsValidIndex( nChildIndex );
     return implGetColumn( nChildIndex );
diff --git a/accessibility/source/extended/AccessibleGridControlTableCell.cxx b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
index 1f70088..84fdb1a 100644
--- a/accessibility/source/extended/AccessibleGridControlTableCell.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
@@ -80,7 +80,7 @@ namespace accessibility
     void SAL_CALL AccessibleGridControlCell::grabFocus() throw ( RuntimeException )
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         m_aTable.GoToCell( m_nColPos, m_nRowPos );
     }
     //// -----------------------------------------------------------------------------
@@ -140,7 +140,6 @@ namespace accessibility
     ::com::sun::star::awt::Rectangle SAL_CALL AccessibleGridControlTableCell::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
 
         ensureIsAlive();
         if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
@@ -156,7 +155,7 @@ namespace accessibility
     sal_Int32 SAL_CALL AccessibleGridControlTableCell::getIndexAtPoint( const ::com::sun::star::awt::Point& _aPoint ) throw (RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         ensureIsAlive();
 
         return m_aTable.GetFieldIndexAtPoint( getRowPos(), getColumnPos(), VCLPoint( _aPoint ) );
@@ -195,9 +194,6 @@ namespace accessibility
     */
     ::utl::AccessibleStateSetHelper* AccessibleGridControlTableCell::implCreateStateSetHelper()
     {
-        SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
-
         ::utl::AccessibleStateSetHelper* pStateSetHelper = new ::utl::AccessibleStateSetHelper;
 
         if( isAlive() )
@@ -220,6 +216,8 @@ namespace accessibility
     /** @return  The XAccessibleContext interface of this object. */
     Reference< XAccessibleContext > SAL_CALL AccessibleGridControlTableCell::getAccessibleContext() throw ( RuntimeException )
     {
+        SolarMutexGuard g;
+
         ensureIsAlive();
         return this;
     }
@@ -230,7 +228,7 @@ namespace accessibility
             throw ( ::com::sun::star::uno::RuntimeException )
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         ensureIsAlive();
 
         return ( getRowPos() * m_aTable.GetColumnCount() ) + getColumnPos();
@@ -243,7 +241,6 @@ namespace accessibility
     sal_Bool SAL_CALL AccessibleGridControlTableCell::setCaretPosition ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
 
         if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
             throw IndexOutOfBoundsException();
@@ -253,13 +250,12 @@ namespace accessibility
     sal_Unicode SAL_CALL AccessibleGridControlTableCell::getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getCharacter( nIndex );
     }
     ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL AccessibleGridControlTableCell::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< OUString >& ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
 
         OUString sText( implGetText() );
 
@@ -271,32 +267,32 @@ namespace accessibility
     sal_Int32 SAL_CALL AccessibleGridControlTableCell::getCharacterCount(  ) throw (::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getCharacterCount(  );
     }
 
     OUString SAL_CALL AccessibleGridControlTableCell::getSelectedText(  ) throw (::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getSelectedText(  );
     }
     sal_Int32 SAL_CALL AccessibleGridControlTableCell::getSelectionStart(  ) throw (::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getSelectionStart(  );
     }
     sal_Int32 SAL_CALL AccessibleGridControlTableCell::getSelectionEnd(  ) throw (::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getSelectionEnd(  );
     }
     sal_Bool SAL_CALL AccessibleGridControlTableCell::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
             throw IndexOutOfBoundsException();
 
@@ -305,37 +301,37 @@ namespace accessibility
     OUString SAL_CALL AccessibleGridControlTableCell::getText(  ) throw (::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getText(  );
     }
     OUString SAL_CALL AccessibleGridControlTableCell::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
     }
     ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleGridControlTableCell::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getTextAtIndex( nIndex ,aTextType);
     }
     ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleGridControlTableCell::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getTextBeforeIndex( nIndex ,aTextType);
     }
     ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleGridControlTableCell::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         return OCommonAccessibleText::getTextBehindIndex( nIndex ,aTextType);
     }
     sal_Bool SAL_CALL AccessibleGridControlTableCell::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
     {
         SolarMutexGuard aSolarGuard;
-        ::osl::MutexGuard aGuard( getOslMutex() );
+
         OUString sText = implGetText();
         checkIndex_Impl( nStartIndex, sText );
         checkIndex_Impl( nEndIndex, sText );
commit 8bffa85ba114977f561f3ccc6f316bbb83be9a98
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Dec 16 16:16:15 2013 +0100

    svtools: rename IAccessibleTableControl::dispose()
    
    ... to not confuse it with XComponent::dispose().
    
    Change-Id: I056fdf77f9116d1c22f8ca9313a0ea313fb1c4aa

diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
index eb3be36..5616117 100644
--- a/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
@@ -229,7 +229,7 @@ protected:
     {
         return this;
     }
-    void dispose();
+    void DisposeAccessImpl() SAL_OVERRIDE;
     virtual sal_Bool isAlive() const
     {
         return isContextAlive();
diff --git a/accessibility/source/extended/AccessibleGridControl.cxx b/accessibility/source/extended/AccessibleGridControl.cxx
index fcd8dbc..9947183 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -421,7 +421,7 @@ AccessibleGridControlAccess::~AccessibleGridControlAccess()
 }
 
 // -----------------------------------------------------------------------------
-void AccessibleGridControlAccess::dispose()
+void AccessibleGridControlAccess::DisposeAccessImpl()
 {
     ::osl::MutexGuard aGuard( m_aMutex );
 
diff --git a/include/svtools/accessibletable.hxx b/include/svtools/accessibletable.hxx
index 285ab84..8b89684 100644
--- a/include/svtools/accessibletable.hxx
+++ b/include/svtools/accessibletable.hxx
@@ -139,7 +139,7 @@ public:
 
     /** disposes the accessible implementation, so that it becomes defunc
     */
-    virtual void dispose() = 0;
+    virtual void DisposeAccessImpl() = 0;
 
     /** checks whether the accessible implementation, and its context, are still alive
         @return  <TRUE/>, if the object is not disposed or disposing.
diff --git a/svtools/source/table/tablecontrol_impl.cxx b/svtools/source/table/tablecontrol_impl.cxx
index e27dbac..f4238c9 100644
--- a/svtools/source/table/tablecontrol_impl.cxx
+++ b/svtools/source/table/tablecontrol_impl.cxx
@@ -2727,7 +2727,7 @@ namespace svt { namespace table
     void TableControl_Impl::disposeAccessible()
     {
         if ( m_pAccessibleTable )
-            m_pAccessibleTable->dispose();
+            m_pAccessibleTable->DisposeAccessImpl();
         m_pAccessibleTable = NULL;
     }
 
commit f94193e9debb5471153a2e0aba719080c15016bc
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Jun 3 15:54:39 2014 +0300

    Fix compilation error after conflict mis-resolution
    
    Change-Id: I33510133dc984e9a7ddc6f2c42749d35c7cbe2b7

diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx
index 4df1166..c004e67 100644
--- a/sw/source/core/access/acctable.cxx
+++ b/sw/source/core/access/acctable.cxx
@@ -1792,7 +1792,8 @@ void SwAccessibleTable::ClearSelectionCellCache()
     m_vecCellRemove.clear();
 }
 
-void SwAccessibleTable::AddSelectionCell(const SwAccessibleContext* pAccCell ,sal_Bool bAddOrRemove)
+void SwAccessibleTable::AddSelectionCell(
+        SwAccessibleContext *const pAccCell, sal_Bool bAddOrRemove)
 {
     uno::Reference<XAccessible> const xTmp(pAccCell);
     if (bAddOrRemove)
diff --git a/sw/source/core/access/acctable.hxx b/sw/source/core/access/acctable.hxx
index 2a239ea..9842acc 100644
--- a/sw/source/core/access/acctable.hxx
+++ b/sw/source/core/access/acctable.hxx
@@ -269,7 +269,7 @@ public:
     Cells_t m_vecCellRemove;
     void FireSelectionEvent( );
     void ClearSelectionCellCache();
-    void AddSelectionCell(const SwAccessibleContext* ,sal_Bool bAddOrRemove);
+    void AddSelectionCell(SwAccessibleContext* ,sal_Bool bAddOrRemove);
 };
 
 inline SwAccessibleTableData_Impl& SwAccessibleTable::GetTableData()
commit 481291223ac99ffec075e86effde38432c36d991
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Dec 13 22:10:17 2013 +0100

    sw: SwAccessibleDocument: fix crashes
    
    Add missing SolarMutexGuards and also GetMap() may be 0 if it's
    disposed. (regression from 76c549eb01dcb7b5bf28a271ce00e386f3d388ba)
    
    Change-Id: I65312098e3d4cc6f686c3fc9e05dc8a6c4da34ce

diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index f530184..2d62e80 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -205,8 +205,10 @@ OUString SAL_CALL SwAccessibleDocumentBase::getAccessibleDescription (void)
 OUString SAL_CALL SwAccessibleDocumentBase::getAccessibleName (void)
         throw (::com::sun::star::uno::RuntimeException)
 {
+    SolarMutexGuard g;
+
     OUString sAccName = GetResource( STR_ACCESS_DOC_WORDPROCESSING );
-    SwDoc *pDoc = GetShell()->GetDoc();
+    SwDoc *pDoc = GetMap() ? GetShell()->GetDoc() : 0;
     if ( pDoc )
     {
         OUString sFileName = pDoc->getDocAccTitle();
@@ -574,6 +576,8 @@ void SwAccessibleDocument::deselectAccessibleChild(
 void SAL_CALL SwAccessibleDocument::notifyEvent( const ::com::sun::star::document::EventObject& Event )
             throw (::com::sun::star::uno::RuntimeException)
 {
+    SolarMutexGuard g;
+
     if ( Event.EventName.equalsAscii( "FirstPageShows" ) )
     {
         FireStateChangedEvent( AccessibleStateType::FOCUSED,sal_True );
@@ -605,8 +609,10 @@ void SAL_CALL SwAccessibleDocument::disposing( const ::com::sun::star::lang::Eve
 uno::Any SAL_CALL SwAccessibleDocument::getExtendedAttributes()
         throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
 {
+    SolarMutexGuard g;
+
     uno::Any anyAtrribute;
-    SwDoc *pDoc = GetShell()->GetDoc();
+    SwDoc *pDoc = GetMap() ? GetShell()->GetDoc() : 0;
 
     if (!pDoc)
         return anyAtrribute;
@@ -854,6 +860,8 @@ sal_Int32 SAL_CALL SwAccessibleDocument::getBackground()
         SAL_CALL SwAccessibleDocument::get_AccFlowTo(const ::com::sun::star::uno::Any& rAny, sal_Int32 nType)
         throw ( ::com::sun::star::uno::RuntimeException )
 {
+    SolarMutexGuard g;
+
     const sal_Int32 FORSPELLCHECKFLOWTO = 1;
     const sal_Int32 FORFINDREPLACEFLOWTO = 2;
     SwAccessibleMap* pAccMap = GetMap();
commit dd6208230c6d3933d3a70faf3d882c0dc8e40e37
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon May 5 15:23:35 2014 +0200

    fdo#57197: sw: check that cells are still alive ...
    
    ... before firing events from them; use a thread-safe WeakReference.
    
    (regression from 76c549eb01dcb7b5bf28a271ce00e386f3d388ba)
    
    Conflicts:
    
    	sw/source/core/access/acctable.cxx
    	sw/source/core/access/acctable.hxx
    
    Change-Id: Ie060d27cc44415e9a75b75027f5510577ac17a6e

diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx
index 18c5ad3..4df1166 100644
--- a/sw/source/core/access/acctable.cxx
+++ b/sw/source/core/access/acctable.cxx
@@ -1749,26 +1749,33 @@ void SwAccessibleTable::FireSelectionEvent( )
 
     aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_REMOVE;
 
-//    int nRemove = m_vecCellRemove.size();
-//    int nAdd = m_vecCellAdd.size();
-
-    VEC_CELL::iterator vi = m_vecCellRemove.begin();
-    for (; vi != m_vecCellRemove.end()  ; ++vi)
+    for (Cells_t::iterator vi = m_vecCellRemove.begin();
+            vi != m_vecCellRemove.end(); ++vi)
     {
-        SwAccessibleContext *pAccCell = const_cast<SwAccessibleContext *>(*vi);
-        OSL_ASSERT(pAccCell != NULL );
-        pAccCell->FireAccessibleEvent(aEvent);
+        // fdo#57197: check if the object is still alive
+        uno::Reference<XAccessible> const xAcc(vi->second);
+        if (xAcc.is())
+        {
+            SwAccessibleContext *const pAccCell(vi->first);
+            assert(pAccCell);
+            pAccCell->FireAccessibleEvent(aEvent);
+        }
     }
 
     if (m_vecCellAdd.size() <= SELECTION_WITH_NUM)
     {
         aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_ADD;
-        vi = m_vecCellAdd.begin();
-        for (; vi != m_vecCellAdd.end()  ; ++vi)
+        for (Cells_t::iterator vi = m_vecCellAdd.begin();
+                vi != m_vecCellAdd.end(); ++vi)
         {
-            SwAccessibleContext *pAccCell = const_cast<SwAccessibleContext *>(*vi);
-            OSL_ASSERT(pAccCell != NULL );
-            pAccCell->FireAccessibleEvent(aEvent);
+            // fdo#57197: check if the object is still alive
+            uno::Reference<XAccessible> const xAcc(vi->second);
+            if (xAcc.is())
+            {
+                SwAccessibleContext *const pAccCell(vi->first);
+                assert(pAccCell);
+                pAccCell->FireAccessibleEvent(aEvent);
+            }
         }
         return ;
     }
@@ -1787,13 +1794,14 @@ void SwAccessibleTable::ClearSelectionCellCache()
 
 void SwAccessibleTable::AddSelectionCell(const SwAccessibleContext* pAccCell ,sal_Bool bAddOrRemove)
 {
+    uno::Reference<XAccessible> const xTmp(pAccCell);
     if (bAddOrRemove)
     {
-        m_vecCellAdd.push_back(pAccCell);
+        m_vecCellAdd.push_back(std::make_pair(pAccCell, xTmp));
     }
     else
     {
-        m_vecCellRemove.push_back(pAccCell);
+        m_vecCellRemove.push_back(std::make_pair(pAccCell, xTmp));
     }
 }
 
diff --git a/sw/source/core/access/acctable.hxx b/sw/source/core/access/acctable.hxx
index 6ee40f7..2a239ea 100644
--- a/sw/source/core/access/acctable.hxx
+++ b/sw/source/core/access/acctable.hxx
@@ -263,9 +263,10 @@ public:
     //=====  XAccessibleComponent  ============================================
     sal_Int32 SAL_CALL getBackground()
         throw (::com::sun::star::uno::RuntimeException);
-    typedef std::vector<const SwAccessibleContext*> VEC_CELL;
-    VEC_CELL m_vecCellAdd;
-    VEC_CELL m_vecCellRemove;
+    typedef std::vector< ::std::pair<SwAccessibleContext*,
+        css::uno::WeakReference<css::accessibility::XAccessible> > > Cells_t;
+    Cells_t m_vecCellAdd;
+    Cells_t m_vecCellRemove;
     void FireSelectionEvent( );
     void ClearSelectionCellCache();
     void AddSelectionCell(const SwAccessibleContext* ,sal_Bool bAddOrRemove);
commit 4b077010f7b01d2622cd36e458193a1771f5df65
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon May 5 21:45:55 2014 +0200

    sw: don't dispose SwAccessibles in SwRowFrm::Cut()
    
    This does not appear to work so well: for a row with multiple cells,
    when the second cell frame's SwAccessible is disposed it will send an
    event, and the AtkListener will then request all children of the row,
    and this causes a new SwAccessible to be created for the first cell
    frame that was disposed previously.
    
    Unlike most other events, Dispose events cannot be sent delayed.
    
    The SwAccessibles are disposed from ~SwCellFrm already, that should be
    sufficient.
    
    Change-Id: I6da72605e5386540f8d82535fca151e97d70869f

diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx
index bb32130..18c5ad3 100644
--- a/sw/source/core/access/acctable.cxx
+++ b/sw/source/core/access/acctable.cxx
@@ -1459,7 +1459,8 @@ void SwAccessibleTable::InvalidateChildPosOrSize( const SwAccessibleChild& rChil
             SwAccessibleTableData_Impl *pNewTableData = CreateNewTableData(); // #i77106#
             if( !pNewTableData->CompareExtents( GetTableData() ) )
             {
-                if(pNewTableData->GetRowCount()!= mpTableData->GetRowCount())
+                if (pNewTableData->GetRowCount() != mpTableData->GetRowCount()
+                    && 1 < GetTableData().GetRowCount())
                 {
                     Int32Set_Impl::const_iterator aSttCol( GetTableData().GetColumnIter( 0 ) );
                     Int32Set_Impl::const_iterator aSttRow( GetTableData().GetRowIter( 1 ) );
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 5f8a584..3bf8903 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -4415,28 +4415,6 @@ void SwRowFrm::Cut()
         pTab->FindMaster()->InvalidatePos();
     }
 
-    // #i103961#
-    // notification for accessibility
-    {
-        SwRootFrm *pRootFrm = getRootFrm();
-        if( pRootFrm && pRootFrm->IsAnyShellAccessible() )
-        {
-            SwViewShell* pVSh = pRootFrm->GetCurrShell();
-            if ( pVSh && pVSh->Imp() )
-            {
-                SwFrm* pCellFrm( GetLower() );
-                while ( pCellFrm )
-                {
-                    OSL_ENSURE( pCellFrm->IsCellFrm(),
-                            "<SwRowFrm::Cut()> - unexpected type of SwRowFrm lower." );
-                    pVSh->Imp()->DisposeAccessibleFrm( pCellFrm );
-
-                    pCellFrm = pCellFrm->GetNext();
-                }
-            }
-        }
-    }
-
     SwLayoutFrm::Cut();
 }
 
commit 0cd2d9de8e8d40b4f0400ee48188ac420d89ffc2
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Mon Dec 16 15:04:09 2013 -0500

    Check IsRefMode() before accessing the ref range.
    
    Else you'd end up with wrong ref range values.  Also in
    selectAllAccessibleChildren(), the code is probably meant to select
    all sheet, rather than setting the top-left reference position twice
    in a row.
    
    Change-Id: I895896418476ffea0862e8df4e03f6efc4c91dd2

diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index 6c1e86c..f610824 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -1159,7 +1159,7 @@ void SAL_CALL
             ScViewData *pViewData = mpViewShell->GetViewData();
             mpViewShell->InitRefMode( 0, 0, pViewData->GetTabNo(), SC_REFTYPE_REF );
             pViewData->SetRefStart(0,0,pViewData->GetTabNo());
-            pViewData->SetRefStart(MAXCOL,MAXROW,pViewData->GetTabNo());
+            pViewData->SetRefEnd(MAXCOL,MAXROW,pViewData->GetTabNo());
             mpViewShell->UpdateRef(MAXCOL, MAXROW, pViewData->GetTabNo());
         }
         else
@@ -1595,6 +1595,10 @@ void ScAccessibleSpreadsheet::FireFirstCellFocus()
 void ScAccessibleSpreadsheet::NotifyRefMode()
 {
     ScViewData *pViewData = mpViewShell->GetViewData();
+    if (!pViewData->IsRefMode())
+        // Not in reference mode. Bail out.
+        return;
+
     sal_uInt16 nRefStartX =pViewData->GetRefStartX();
     sal_Int32 nRefStartY=pViewData->GetRefStartY();
     sal_uInt16 nRefEndX=pViewData->GetRefEndX();
commit feceddf2ed6dc8c0aae5a43a09db8d096ca8e93d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Dec 16 18:51:18 2013 +0100

    sw: revert PaintArea change in SwAccessibleFrame
    
    76c549eb01dcb7b5bf28a271ce00e386f3d388ba changes some calls to
    SwAccessibleChildSList to use the PaintArea() of the given SwFrm
    instead of the given rVisArea, which makes
    SwAccessibleFrame::GetChildCount() and GetChildIndex() inconsistent
    with other methods such as GetChild(), GetChildAtPixel() etc.
    
    Not sure which way is better, but it should be consistent;
    revert the partial change for now and see.
    
    Change-Id: I7d7edf2ec3dd0860ac2331d36757096186185e4f

diff --git a/sw/source/core/access/accframe.cxx b/sw/source/core/access/accframe.cxx
index fb1771f..34e7210 100644
--- a/sw/source/core/access/accframe.cxx
+++ b/sw/source/core/access/accframe.cxx
@@ -51,8 +51,7 @@ sal_Int32 SwAccessibleFrame::GetChildCount( SwAccessibleMap& rAccMap,
 {
     sal_Int32 nCount = 0;
 
-    // const SwAccessibleChildSList aVisList( rVisArea, *pFrm, rAccMap );
-    const SwAccessibleChildSList aVisList( pFrm->PaintArea(), *pFrm, rAccMap );
+    const SwAccessibleChildSList aVisList( rVisArea, *pFrm, rAccMap );
 
     SwAccessibleChildSList::const_iterator aIter( aVisList.begin() );
     while( aIter != aVisList.end() )
@@ -155,7 +154,7 @@ sal_Bool SwAccessibleFrame::GetChildIndex(
     if( SwAccessibleChildMap::IsSortingRequired( rFrm ) )
     {
         // We need a sorted list here
-        const SwAccessibleChildMap aVisMap( rFrm.PaintArea(), rFrm, rAccMap );
+        const SwAccessibleChildMap aVisMap( rVisArea, rFrm, rAccMap );
         SwAccessibleChildMap::const_iterator aIter( aVisMap.begin() );
         while( aIter != aVisMap.end() && !bFound )
         {
@@ -182,7 +181,7 @@ sal_Bool SwAccessibleFrame::GetChildIndex(
         // The unsorted list is sorted enough, because it returns lower
         // frames in the correct order.
 
-        const SwAccessibleChildSList aVisList( rFrm.PaintArea(), rFrm, rAccMap );
+        const SwAccessibleChildSList aVisList( rVisArea, rFrm, rAccMap );
         SwAccessibleChildSList::const_iterator aIter( aVisList.begin() );
         while( aIter != aVisList.end() && !bFound )
         {
commit d6f4b60b3fbedb22c46e7c4c3370a74b649e187f
Author: Isamu Mogi <saturday6c at gmail.com>
Date:   Wed Dec 18 20:52:45 2013 +0900

    --disable-atl disables winaccessibility
    
    Change-Id: I548ea294e6c632b8ae95e6745a51d9b12c7e5297
    Reviewed-on: https://gerrit.libreoffice.org/7130
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Michael Stahl <mstahl at redhat.com>

diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index c291401..9f4927e 100755
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -140,7 +140,6 @@ $(eval $(call gb_Rdb_add_components,services,\
 		shell/source/win32/simplemail/smplmail \
 		shell/source/win32/syssh \
 		vcl/vcl.windows \
-		winaccessibility/source/service/winaccessibility \
 	) \
 	$(if $(ENABLE_HEADLESS), \
 		vcl/vcl.headless \
@@ -153,6 +152,7 @@ $(eval $(call gb_Rdb_add_components,services,\
 			embeddedobj/source/msole/emboleobj.windows \
 			embedserv/util/emser \
 			extensions/source/ole/oleautobridge \
+			winaccessibility/source/service/winaccessibility \
 		) \
 	) \
 	$(if $(WITH_WEBDAV), \
diff --git a/winaccessibility/Module_winaccessibility.mk b/winaccessibility/Module_winaccessibility.mk
index 2421164..19490a6 100644
--- a/winaccessibility/Module_winaccessibility.mk
+++ b/winaccessibility/Module_winaccessibility.mk
@@ -11,12 +11,14 @@ $(eval $(call gb_Module_Module,winaccessibility))
 
 ifeq ($(OS),WNT)
 ifeq ($(COM),MSC)
+ifeq ($(DISABLE_ATL),)
 $(eval $(call gb_Module_add_targets,winaccessibility,\
 	WinResTarget_uacccom \
 	CustomTarget_ia2_idl \
 	Library_uacccom \
 	Library_winaccessibility \
 ))
+endif # !DISABLE_ATL
 endif # COM=MSC
 endif # WNT
 
commit b977c542b16e3789d93d1c3b261288634e29f718
Author: Jacobo Aragunde Pérez <jaragunde at igalia.com>
Date:   Mon Feb 3 19:08:31 2014 +0100

    fdo#39944: Add DOCUMENT_* accessibility UNO roles
    
    Added a set of UNO accessibility roles for specific kinds of
    documents:
     * DOCUMENT_PRESENTATION for Impress
     * DOCUMENT_SPREADSHEET for Calc
     * DOCUMENT_TEXT for Writer
    
    The other applications still use the existing DOCUMENT role.
    
    These roles translates directly to ATK but in the other toolkits we
    keep using the same association that DOCUMENT role had.
    
    Change-Id: Ibac47527e5effdecb28d2314cde8558cf4fb010a
    Reviewed-on: https://gerrit.libreoffice.org/7847
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/offapi/com/sun/star/accessibility/AccessibleRole.idl b/offapi/com/sun/star/accessibility/AccessibleRole.idl
index 2baa6a9..ca3b79b 100644
--- a/offapi/com/sun/star/accessibility/AccessibleRole.idl
+++ b/offapi/com/sun/star/accessibility/AccessibleRole.idl
@@ -705,6 +705,30 @@ constants AccessibleRole
     */
     const short COMMENT_END = 82;
 
+    /** View of an presentation document.
+
+        <p>It's an specific variation of DOCUMENT for presentations.</p>
+
+        @since LibreOffice 4.3
+    */
+    const short DOCUMENT_PRESENTATION = 83;
+
+    /** View of an spreadsheet document.
+
+        <p>It's an specific variation of DOCUMENT for spreadsheets.</p>
+
+        @since LibreOffice 4.3
+    */
+    const short DOCUMENT_SPREADSHEET = 84;
+
+    /** View of an text document.
+
+        <p>It's an specific variation of DOCUMENT for text.</p>
+
+        @since LibreOffice 4.3
+    */
+    const short DOCUMENT_TEXT = 85;
+
 };
 
 }; }; }; };
diff --git a/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
index 1c3c3fa..9dcf863 100644
--- a/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
+++ b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
@@ -69,8 +69,10 @@ service AccessibleDrawDocumentView
 
         <p>You can access the following information:
         <ul>
-        <li>Role: The object's role is
-            com::sun::star::accessibility::AccessibleRole::DOCUMENT.</li>
+        <li>Role: The object's role might be
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT or
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION
+            , the former for a Draw and the latter for an Impress document.</li>
         <li>Name: Its name is "AccessibleDrawDocumentView",
         "AccessibleOutlineView", or "slide window".</li>
         <li>Description: The description is "Draw Document", "Accessible
diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
index 77939c9..7b0d7fe 100644
--- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
+++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
@@ -92,7 +92,7 @@ service AccessibleSpreadsheetDocumentView
         </ul>
         <li>The description is ???.</li>
         <li>The name is Spreadsheet Document View with a unique number.</li>
-        <li>The role is ::com::sun::star::accessibility::AccessibleRole::DOCUMENT</li>
+        <li>The role is ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET</li>
         <li>There are no relations.</li>
         <li>The following states are supported:
             <ul>
diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
index 7673927..6ff4454 100644
--- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
+++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
@@ -96,7 +96,7 @@ service AccessibleSpreadsheetPageView
         <li>The description is ???.</li>
         <li>The name is Spreadsheet Document Page Preview.</li>
         <li>The role is
-            ::com::sun::star::accessibility::AccessibleRole::DOCUMENT</li>
+            ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET</li>
         <li>There are no relations.</li>
         <li>The following states are supported:
             <ul>
diff --git a/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl b/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
index cfe22fe..5a6ace7 100644
--- a/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
+++ b/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
@@ -47,7 +47,7 @@ service AccessibleTextDocumentPageView
                 returns an object that supports one of the service
                 ::com::sun::star::text::AccessiblePageView.
             <li>The role is
-                ::com::sun::star::accessibility::AccessibleRole::DOCUMENT.
+                ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT.
             <li>The name is "document view" (or the equivalent term
                 in application's language).
             <li>The description also is "document view" (or the equivalent term
diff --git a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
index 4d4acf4..818b18e 100644
--- a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
+++ b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
@@ -129,7 +129,7 @@ service AccessibleTextDocumentView
                         but also keep the z order.
                 </ul>
             <li>The role is
-                ::com::sun::star::accessibility::AccessibleRole::DOCUMENT.
+                ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT.
             <li>The name is "document view" (or the equivalent term
                 in application's language).
             <li>The description also is "document view" (or the equivalent term
diff --git a/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx b/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
index 12435ea..3b32481 100644
--- a/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
@@ -28,7 +28,7 @@ using namespace ::com::sun::star::accessibility;
 
 ScAccessibleDocumentBase::ScAccessibleDocumentBase(
         const uno::Reference<XAccessible>& rxParent)
-    : ScAccessibleContextBase(rxParent, AccessibleRole::DOCUMENT)
+    : ScAccessibleContextBase(rxParent, AccessibleRole::DOCUMENT_SPREADSHEET)
 {
 }
 
diff --git a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index cd41a1e..22ebca3 100644
--- a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -63,7 +63,10 @@ AccessibleDocumentViewBase::AccessibleDocumentViewBase (
     ::sd::ViewShell* pViewShell,
     const uno::Reference<frame::XController>& rxController,
     const uno::Reference<XAccessible>& rxParent)
-    : AccessibleContextBase (rxParent, AccessibleRole::DOCUMENT),
+    : AccessibleContextBase (rxParent,
+                             pViewShell->GetDoc()->GetDocumentType() == DOCUMENT_TYPE_IMPRESS ?
+                                     AccessibleRole::DOCUMENT_PRESENTATION :
+                                     AccessibleRole::DOCUMENT),
       mpWindow (pSdWindow),
       mxController (rxController),
       mxModel (NULL),
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index fa36b9c..47d951d 100644
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -1531,7 +1531,10 @@ throw (uno::RuntimeException)
     }
 
     ::com::sun::star::uno::Reference<XAccessibleContext> xParentContext = xParent->getAccessibleContext();
-    if( xParentContext->getAccessibleRole()  == AccessibleRole::DOCUMENT)//Document
+    if( xParentContext->getAccessibleRole()  == AccessibleRole::DOCUMENT ||
+            xParentContext->getAccessibleRole()  == AccessibleRole::DOCUMENT_PRESENTATION ||
+            xParentContext->getAccessibleRole()  == AccessibleRole::DOCUMENT_SPREADSHEET ||
+            xParentContext->getAccessibleRole()  == AccessibleRole::DOCUMENT_TEXT )//Document
     {
         Reference< XAccessibleGroupPosition > xGroupPosition( xParent,uno::UNO_QUERY );
         if ( xGroupPosition.is() )
diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index 893c63c..9c1c8f0 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -547,7 +547,7 @@ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleChildCount( void )
 
     CHECK_FOR_DEFUNC( XAccessibleContext )
     //Notify the frame is a document
-    if( nRole == AccessibleRole::DOCUMENT )
+    if( nRole == AccessibleRole::DOCUMENT_TEXT )
         bIsAccDocUse = sal_True;
 
     return bDisposing ? 0 : GetChildCount( *(GetMap()) );
@@ -562,7 +562,7 @@ uno::Reference< XAccessible> SAL_CALL
     CHECK_FOR_DEFUNC( XAccessibleContext )
 
     //Notify the frame is a document
-    if( nRole == AccessibleRole::DOCUMENT )
+    if( nRole == AccessibleRole::DOCUMENT_TEXT )
         bIsAccDocUse = sal_True;
 
     const SwAccessibleChild aChild( GetChild( *(GetMap()), nIndex ) );
@@ -581,7 +581,7 @@ uno::Reference< XAccessible> SAL_CALL
         ::rtl::Reference < SwAccessibleContext > xChildImpl(
                 GetMap()->GetContextImpl( aChild.GetSwFrm(), !bDisposing )  );
         //Send out accessible event when begin load.
-        if( bBeginDocumentLoad && nRole == AccessibleRole::DOCUMENT )
+        if( bBeginDocumentLoad && nRole == AccessibleRole::DOCUMENT_TEXT )
         {
 
             FireStateChangedEvent( AccessibleStateType::FOCUSABLE,sal_True );
diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index 7403608..f530184 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -71,7 +71,7 @@ using lang::IndexOutOfBoundsException;
 // SwAccessiblePreview
 
 SwAccessibleDocumentBase::SwAccessibleDocumentBase ( SwAccessibleMap *_pMap ) :
-    SwAccessibleContext( _pMap, AccessibleRole::DOCUMENT,
+    SwAccessibleContext( _pMap, AccessibleRole::DOCUMENT_TEXT,
                          _pMap->GetShell()->GetLayout() ),
     mxParent( _pMap->GetShell()->GetWin()->GetAccessibleParentWindow()->GetAccessible() ),
     mpChildWin( 0 )
diff --git a/vcl/aqua/source/a11y/aqua11yrolehelper.mm b/vcl/aqua/source/a11y/aqua11yrolehelper.mm
index 2ee62af..cd626fa 100644
--- a/vcl/aqua/source/a11y/aqua11yrolehelper.mm
+++ b/vcl/aqua/source/a11y/aqua11yrolehelper.mm
@@ -122,6 +122,10 @@ using namespace ::com::sun::star::uno;
         MAP( AccessibleRole::TREE_ITEM, NSAccessibilityUnknownRole );
         MAP( AccessibleRole::TREE_TABLE, NSAccessibilityUnknownRole );
 
+        MAP( AccessibleRole::DOCUMENT_PRESENTATION, NSAccessibilityGroupRole );
+        MAP( AccessibleRole::DOCUMENT_SPREADSHEET, NSAccessibilityGroupRole );
+        MAP( AccessibleRole::DOCUMENT_TEXT, NSAccessibilityGroupRole );
+
 #undef MAP
         default:
             break;
@@ -249,6 +253,10 @@ using namespace ::com::sun::star::uno;
         MAP( AccessibleRole::TREE_ITEM, @"" );
         MAP( AccessibleRole::TREE_TABLE, @"" );
 
+        MAP( AccessibleRole::DOCUMENT_PRESENTATION, @"" );
+        MAP( AccessibleRole::DOCUMENT_SPREADSHEET, @"" );
+        MAP( AccessibleRole::DOCUMENT_TEXT, @"" );
+
 #undef MAP
         default:
             break;
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index a568953..cdc8076 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -270,7 +270,10 @@ static AtkRole mapToAtkRole( sal_Int16 nRole )
         ATK_ROLE_UNKNOWN,       // TREE_ITEM - registered below
         ATK_ROLE_TREE_TABLE,
         ATK_ROLE_SCROLL_PANE,   // COMMENT - mapped to atk_role_scroll_pane
-        ATK_ROLE_UNKNOWN        // COMMENT_END - mapped to atk_role_unknown
+        ATK_ROLE_UNKNOWN,       // COMMENT_END - mapped to atk_role_unknown
+        ATK_ROLE_DOCUMENT_PRESENTATION,
+        ATK_ROLE_DOCUMENT_SPREADSHEET,
+        ATK_ROLE_DOCUMENT_TEXT
     };
 
     static bool initialized = false;
diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx
index 50b5a35..3f32fb6 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.cxx
+++ b/winaccessibility/source/UAccCOM/MAccessible.cxx
@@ -1964,7 +1964,8 @@ STDMETHODIMP CMAccessible:: get_groupPosition(long __RPC_FAR *groupLevel,long __
         *similarItemsInGroup = 0;
         *positionInGroup = 0;
 
-        if (Role != AccessibleRole::DOCUMENT)
+        if (Role != AccessibleRole::DOCUMENT && Role != AccessibleRole::DOCUMENT_PRESENTATION &&
+                Role != AccessibleRole::DOCUMENT_SPREADSHEET && Role != AccessibleRole::DOCUMENT_TEXT)
         {
             Reference< XAccessibleGroupPosition > xGroupPosition( pRContext, UNO_QUERY );
             if ( xGroupPosition.is() )
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index 15c9f9c..3392d0a 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -603,7 +603,10 @@ sal_Bool AccObjectWinManager::InsertChildrenAccObj( com::sun::star::accessibilit
 
     short role = pRContext->getAccessibleRole();
 
-    if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role )
+    if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role ||
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION == role ||
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET == role ||
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT == role)
     {
         if(IsStateManageDescendant(pXAcc))
         {
diff --git a/winaccessibility/source/service/AccTopWindowListener.cxx b/winaccessibility/source/service/AccTopWindowListener.cxx
index db87f23..df30a1a 100644
--- a/winaccessibility/source/service/AccTopWindowListener.cxx
+++ b/winaccessibility/source/service/AccTopWindowListener.cxx
@@ -156,7 +156,10 @@ void AccTopWindowListener::AddAllListeners(com::sun::star::accessibility::XAcces
 
 
     short role = pAccessibleContext->getAccessibleRole();
-    if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role )
+    if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role ||
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION == role ||
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET == role ||
+            com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT == role)
     {
         if(accManagerAgent.IsStateManageDescendant(pAccessible))
         {
commit fa9ceadbd339b8adff1db7e8c0661dc05229608e
Author: Niklas Johansson <sleeping.pillow at gmail.com>
Date:   Thu Mar 20 18:27:39 2014 +0100

    Improve Accessibility mapping of roles for Mac
    
    Since role Heading now is exposed to A11y we need to give it a better role then
    unknown, otherwise it gets inaccessible to VoiceOver. Until I get a better grip
    on how to best expose AXHeading, let's map it to textAreaRole so we at least
    get back to the behaviour before IA2 integration.
    Header and Footer is probably best mapped to AXGroup.
    
    Change-Id: I6353f4d25c18e6e550df289ca2e999ad1c01f2a8
    Reviewed-on: https://gerrit.libreoffice.org/8682
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/aqua/source/a11y/aqua11yrolehelper.mm b/vcl/aqua/source/a11y/aqua11yrolehelper.mm
index 0d55279..2ee62af 100644
--- a/vcl/aqua/source/a11y/aqua11yrolehelper.mm
+++ b/vcl/aqua/source/a11y/aqua11yrolehelper.mm
@@ -59,14 +59,14 @@ using namespace ::com::sun::star::uno;
         MAP( AccessibleRole::FILE_CHOOSER, NSAccessibilityUnknownRole ); // FIXME
         MAP( AccessibleRole::FILLER, NSAccessibilityUnknownRole ); // FIXME
         MAP( AccessibleRole::FONT_CHOOSER, NSAccessibilityUnknownRole ); // FIXME
-        MAP( AccessibleRole::FOOTER, NSAccessibilityUnknownRole ); // FIXME
+        MAP( AccessibleRole::FOOTER, NSAccessibilityGroupRole ); // FIXME
         MAP( AccessibleRole::FOOTNOTE, NSAccessibilityUnknownRole ); // FIXME
         MAP( AccessibleRole::FRAME, NSAccessibilityWindowRole );
         MAP( AccessibleRole::GLASS_PANE, NSAccessibilityUnknownRole ); // FIXME
         MAP( AccessibleRole::GRAPHIC, NSAccessibilityImageRole );
         MAP( AccessibleRole::GROUP_BOX, NSAccessibilityGroupRole );
-        MAP( AccessibleRole::HEADER, NSAccessibilityUnknownRole ); // FIXME
-        MAP( AccessibleRole::HEADING, NSAccessibilityUnknownRole ); // FIXME
+        MAP( AccessibleRole::HEADER, NSAccessibilityGroupRole ); // FIXME
+        MAP( AccessibleRole::HEADING, NSAccessibilityTextAreaRole ); // FIXME
         MAP( AccessibleRole::HYPER_LINK, NSAccessibilityLinkRole );
         MAP( AccessibleRole::ICON, NSAccessibilityImageRole );
         MAP( AccessibleRole::INTERNAL_FRAME, NSAccessibilityUnknownRole ); // FIXME

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list