diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-02-07 00:08:00 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-02-07 14:36:25 +0100 |
commit | 6bef95d0da47edf33f4c3fe3c7380977f8c1cf67 (patch) | |
tree | 03f25fb97c4dc80f626ffe24c5516d565a9790fe /mysqlc | |
parent | sdremote - disable the menu item if it is not compiled in. (diff) | |
download | core-6bef95d0da47edf33f4c3fe3c7380977f8c1cf67.tar.gz core-6bef95d0da47edf33f4c3fe3c7380977f8c1cf67.zip |
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
Diffstat (limited to 'mysqlc')
0 files changed, 0 insertions, 0 deletions