summaryrefslogtreecommitdiff
path: root/sc/source/core/data/column.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-02-07 00:08:00 +0100
committerCaolán McNamara <caolanm@redhat.com>2013-02-07 21:15:17 +0000
commit00ae381d515d67401b1800280083c9356bf5bd5f (patch)
treee49840d393411a4098c2c5e0bedbe9a123371457 /sc/source/core/data/column.cxx
parent1baf540f0d479127fd13a8026f7c44a2811e74b4 (diff)
SwPageFrm::RemoveFlyFromPage: fix a11y problem:
This problem can be reproduced with the bugdoc from fdo#60234, by dragging and dropping the lower left drawing object. The ATK bridge is notified of the change, and updates its list of children by calling getAccessibleChildCount() and then getAccessibleChild() in a loop. Unfortunately the count returned does not match the available children (the difference is the object that is being dragged). The implementations in SwAccessibleFrame::GetChildCount() and SwAccessibleFrame::GetChild() use slightly different iterators for the SwPageFrm, and the SwAccessibleChildMap one is implemented as a std::map, using the OrdNum of the drawing object as a key. On the dragged object, that OrdNum has been reset to 0 in RemoveFlyFromPage, but it is still in the pSortedObjs of the SwPageFrm, and so it is not inserted into the map, and iteration over the map is missing one element. 149 return _SwAccessibleChildMap::insert( aEntry ); Value returned is $22 = {first = {first = {eLayerId = SwAccessibleChildMapKey::HELL, nOrdNum = 0}, second = ...}, second = false} Fix this by removing the object from pSortedObjs before disposing the a11y frames. Change-Id: I4e4bb37759382e32150cff6def02d80a55e4a702 (cherry picked from commit 6bef95d0da47edf33f4c3fe3c7380977f8c1cf67) Reviewed-on: https://gerrit.libreoffice.org/2027 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc/source/core/data/column.cxx')
0 files changed, 0 insertions, 0 deletions