summaryrefslogtreecommitdiff
path: root/svx/source/unodraw/unoshtxt.cxx
diff options
context:
space:
mode:
authorArmin Le Grand (allotropia) <armin.le.grand.extern@allotropia.de>2024-02-29 16:08:29 +0100
committerArmin Le Grand <Armin.Le.Grand@me.com>2024-02-29 23:23:04 +0100
commite3fdafaabc198054255fa7c5c34b6beed6915b3b (patch)
tree6ca681c3e2441302462d9555c2d5316050fa7cfb /svx/source/unodraw/unoshtxt.cxx
parentc6d9cc16dbb5fe0d05ce8ca9c4c18b989596e928 (diff)
IASS: Update edited Text in other Views
This was not working for multiple Windows for a document, and also not supported for SlideShow until now. If you edit a Text on a Slide (Object, PresObj, ...) that text is not yet set at the Model until the TextEdit ends. In that situation those changes are now propagated to other views visualizing that object. This is done with slight slowdown to not do it all the time while typing, (currently 350ms, grepped from other places in the office). It will be shown in a running open SlideShow (and evtl. trigger an effect at the Object as Preview). This will allow to get a good preview for how it looks in the SlideShow. This is also done for further EditViews opened for that Document. This was not done before. It is fine-tuned to do this only for the Views besides the EditView with the running TextEdit to not cause slowdowns in that active view - the TextEdit is already running on the Overlay to have no problems with speed, this needs to be preserved. I had to fix a multi-view error in the a11y stack that implied that only one view exists and thus has to have an Outliner - that is wrong for multiple views, only one will have one. Change-Id: I781d32a8fcb8732ee8fcfbae72c02d1f99b6cd06 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164160 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Diffstat (limited to 'svx/source/unodraw/unoshtxt.cxx')
-rw-r--r--svx/source/unodraw/unoshtxt.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/svx/source/unodraw/unoshtxt.cxx b/svx/source/unodraw/unoshtxt.cxx
index e6b958ce4dc0..e445978d98bb 100644
--- a/svx/source/unodraw/unoshtxt.cxx
+++ b/svx/source/unodraw/unoshtxt.cxx
@@ -641,7 +641,13 @@ SvxTextForwarder* SvxTextEditSourceImpl::GetTextForwarder()
// distinguish the cases
// a) connected to view, maybe edit mode is active, can work directly on the EditOutliner
// b) background Outliner, reflect changes into ParaOutlinerObject (this is exactly the old UNO code)
- if( HasView() )
+
+ // IASS: testing for HasView() is *not* sufficient - there may be more views of one document
+ // open and TextEdit is only active in one of them, or - as with IASS - it may even be the view
+ // of the running SlideShow itself which also will have no active TextEdit and thus no Outliner.
+ // Thus, to identify the view which indeed does have an outliner (and is in TextEdit mode),
+ // also check if it has an active Outliner by using GetTextEditOutliner()
+ if( HasView() && nullptr != mpView->GetTextEditOutliner() )
{
if( IsEditMode() != mbForwarderIsEditMode )
{