sc/source/ui/Accessibility/AccessibleDocument.cxx | 40 ++++++++++------------ sc/source/ui/inc/AccessibleDocument.hxx | 3 - 2 files changed, 20 insertions(+), 23 deletions(-)
New commits: commit b3d19761b4a1621e5754c758366818528a4dc774 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Sat Nov 19 21:44:42 2016 -0500 Revert "Use rtl::Reference to wrap ScAccessibleEditObject here." This reverts commit da7aa2561297da42058da55ed2629d0df6fb03f3. diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx index 8591e6a..f919af43 100644 --- a/sc/source/ui/Accessibility/AccessibleDocument.cxx +++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx @@ -1397,6 +1397,7 @@ ScAccessibleDocument::ScAccessibleDocument( mpViewShell(pViewShell), meSplitPos(eSplitPos), mpChildrenShapes(nullptr), + mpTempAccEdit(nullptr), mbCompleteSheetSelected(false) { maVisArea = GetVisibleArea_Impl(); @@ -1507,8 +1508,8 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) const ScAccGridWinFocusLostHint* pFocusLostHint = static_cast<const ScAccGridWinFocusLostHint *>(&rHint); if (pFocusLostHint->GetOldGridWin() == meSplitPos) { - if (mpEditObj.is()) - mpEditObj->LostFocus(); + if (mxTempAcc.is() && mpTempAccEdit) + mpTempAccEdit->LostFocus(); else if (mpAccessibleSpreadsheet.is()) mpAccessibleSpreadsheet->LostFocus(); else @@ -1537,12 +1538,12 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) } else { - if (mpEditObj.is()) - mpEditObj->GotFocus(); - else if (mpAccessibleSpreadsheet.is()) - mpAccessibleSpreadsheet->GotFocus(); - else - CommitFocusGained(); + if (mxTempAcc.is() && mpTempAccEdit) + mpTempAccEdit->GotFocus(); + else if (mpAccessibleSpreadsheet.is()) + mpAccessibleSpreadsheet->GotFocus(); + else + CommitFocusGained(); } } } @@ -1586,14 +1587,11 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) const EditEngine* pEditEng = rViewData.GetEditView(meSplitPos)->GetEditEngine(); if (pEditEng && pEditEng->GetUpdateMode()) { - if (!mpEditObj.is()) - { - mpEditObj.set(new ScAccessibleEditObject(this, rViewData.GetEditView(meSplitPos), - mpViewShell->GetWindowByPos(meSplitPos), GetCurrentCellName(), - OUString(ScResId(STR_ACC_EDITLINE_DESCR)), ScAccessibleEditObject::CellInEditMode)); - } + mpTempAccEdit = new ScAccessibleEditObject(this, rViewData.GetEditView(meSplitPos), + mpViewShell->GetWindowByPos(meSplitPos), GetCurrentCellName(), + OUString(ScResId(STR_ACC_EDITLINE_DESCR)), ScAccessibleEditObject::CellInEditMode); + uno::Reference<XAccessible> xAcc = mpTempAccEdit; - uno::Reference<XAccessible> xAcc = mpEditObj.get(); AddChild(xAcc, true); if (mpAccessibleSpreadsheet.is()) @@ -1601,19 +1599,19 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) else CommitFocusLost(); - mpEditObj->GotFocus(); + mpTempAccEdit->GotFocus(); } } } else if (rHint.GetId() == SC_HINT_ACC_LEAVEEDITMODE) { - if (mpEditObj.is()) + if (mxTempAcc.is()) { - mpEditObj->LostFocus(); - - uno::Reference<XAccessible> xAcc = mpEditObj.get(); - RemoveChild(xAcc, true); + if (mpTempAccEdit) + mpTempAccEdit->LostFocus(); + mpTempAccEdit = nullptr; + RemoveChild(mxTempAcc, true); if (mpAccessibleSpreadsheet.is() && mpViewShell && mpViewShell->IsActive()) mpAccessibleSpreadsheet->GotFocus(); else if( mpViewShell && mpViewShell->IsActive()) diff --git a/sc/source/ui/inc/AccessibleDocument.hxx b/sc/source/ui/inc/AccessibleDocument.hxx index 0f08c4c..9a2807d 100644 --- a/sc/source/ui/inc/AccessibleDocument.hxx +++ b/sc/source/ui/inc/AccessibleDocument.hxx @@ -259,9 +259,8 @@ private: ScTabViewShell* mpViewShell; ScSplitPos meSplitPos; rtl::Reference<ScAccessibleSpreadsheet> mpAccessibleSpreadsheet; - rtl::Reference<ScAccessibleEditObject> mpEditObj; ScChildrenShapes* mpChildrenShapes; - + ScAccessibleEditObject* mpTempAccEdit; css::uno::Reference<css::accessibility::XAccessible> mxTempAcc; Rectangle maVisArea; bool mbCompleteSheetSelected; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits