summaryrefslogtreecommitdiff
path: root/sc/source/ui/Accessibility/AccessibleDocument.cxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2016-11-19 21:44:42 -0500
committerKohei Yoshida <kohei.yoshida@collabora.com>2016-11-19 21:44:42 -0500
commitb3d19761b4a1621e5754c758366818528a4dc774 (patch)
tree5bacffaa83834ae39e8eef41163483a48db2544a /sc/source/ui/Accessibility/AccessibleDocument.cxx
parentc3c0557801d8713fb99216bea37443471affc1f6 (diff)
Revert "Use rtl::Reference to wrap ScAccessibleEditObject here."
Diffstat (limited to 'sc/source/ui/Accessibility/AccessibleDocument.cxx')
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocument.cxx40
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())