diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2016-11-19 21:44:42 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2016-11-19 21:44:42 -0500 |
commit | b3d19761b4a1621e5754c758366818528a4dc774 (patch) | |
tree | 5bacffaa83834ae39e8eef41163483a48db2544a /sc/source/ui/Accessibility/AccessibleDocument.cxx | |
parent | c3c0557801d8713fb99216bea37443471affc1f6 (diff) |
Revert "Use rtl::Reference to wrap ScAccessibleEditObject here."
This reverts commit da7aa2561297da42058da55ed2629d0df6fb03f3.
Diffstat (limited to 'sc/source/ui/Accessibility/AccessibleDocument.cxx')
-rw-r--r-- | sc/source/ui/Accessibility/AccessibleDocument.cxx | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx index 8591e6acd502..f919af438e80 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()) |