summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2013-05-28 15:32:19 +0100
committerCaolán McNamara <caolanm@redhat.com>2013-05-28 15:55:22 +0100
commit64b07d99aa0b31b3d04519afe6afe0cdf36bcd6f (patch)
tree3711799706d393ccd9242035ea3ad0f1f4f5962e /editeng
parentd93c8739e899f15eadc6e348b41be07253bd0357 (diff)
pause notifications while undoing to keep a11y out until we're done
Block them together and announce after undoing that all is done. This stops a11y trampling in before we're actually finished, querying for the new text, which unsets the invalid flags as the new layout is now up-to-date, but unfortunately results in the view not redrawing as the layout is apparently valid and doesn't need to be redrawn. To reproduce, enter a drawing rectangle in draw, enter some text, and (without leaving edit more) press ctrl-z. The text appears to not change. But the model has changed except the view didn't get to hear about it because a11y swooped in between that model change and the view checking to see if the model changed. And the format update there unsets the model-changed flag. Change-Id: If2552ef3680b9bd64a2e28a3e9cdbb9e2d45f329
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/editeng/impedit.hxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 9b3a9e307c44..b6dbcdc8a08a 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -735,7 +735,14 @@ public:
void EnableUndo( bool bEnable );
bool IsUndoEnabled() { return bUndoEnabled; }
- void SetUndoMode( bool b ) { bIsInUndo = b; }
+ void SetUndoMode( bool b )
+ {
+ bIsInUndo = b;
+ if (bIsInUndo)
+ EnterBlockNotifications();
+ else
+ LeaveBlockNotifications();
+ }
bool IsInUndo() { return bIsInUndo; }
void SetCallParaInsertedOrDeleted( bool b ) { bCallParaInsertedOrDeleted = b; }