• Michael Stahl's avatar
    sw: avoid layout recursion when loading documents with charts... · 9dc1ef3c
    Michael Stahl yazdı
    ... that have a Writer table as data source, such as ooo38798-1.sxw.
    
    The problem is that during layouting, the SwWrtShell::CalcAndSetScale()
    wants to call setVisualAreaSize() on the embedded chart object.
    
    This switches the state of the object to RUNNING, which loads it from
    the file, and during that the ODF filter calls into SwChartDataProvider
    and that uses a UnoActionRemoveContext; unfortunately that ends all
    pending Actions, so we get a recursive layout action.
    
    Apparently the UnoActionRemoveContext is required to call
    SwUnoTableCrsr::MakeBoxSels() for old-style tables, which need layout
    frames for selection?!?
    
    Try to avoid the problem by disabling UnoActionRemoveContext in case a
    new-style table will be selected, which can be done without layout.
    
    (cherry picked from commit b6cefd5e)
    
    Conflicts:
    	sw/source/core/unocore/unochart.cxx
    	sw/source/core/unocore/unotbl.cxx
    
    Change-Id: I097991ffb2e78ddf011db7575f7bb63ae8aa7005
    Reviewed-on: https://gerrit.libreoffice.org/16617Reviewed-by: 's avatarBjörn Michaelsen <bjoern.michaelsen@canonical.com>
    Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
    Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
    9dc1ef3c
unobaseclass.hxx 4.51 KB