• László Németh's avatar
    tdf#95614 fix freezing with linked graphic · 945da612
    László Németh yazdı
    When an unloaded linked picture comes into the visible view
    (including repainting a page), SwNoTextFrm::PaintPicture()
    starts a thread to load it in the background using the
    TriggerAsyncRetrieveInputStream() method of the graphic node.
    
    To avoid to start a second thread on the same graphic node,
    TriggerAsyncRetrieveInputStream() checks mpThreadConsumer,
    the graphic node member variable for the possible thread object.
    
    The problem is that when the thread finished and
    SwGrfNode::UpdateLinkWithInputStream() reset mpThreadConsumer,
    the graphic object of the graphic node is still in unloaded
    state (its type is GRAPHIC_DEFAULT or GRAPHIC_NONE instead of
    GRAPHIC_BITMAP or GRAPHIC_GDIMETAFILE) for a while, because
    its modification is solved asynchronously after several
    SvFileObject::GetData() calls. In the intermediate state
    of the graphic object, with the high priority repaints of
    the new scheduler, PaintPicture() could start new thread
    to load the image again.
    
    Using the new member variable SwGrfNode::mbUpdateLinkInProgress,
    this patch will prevent the graphic node to start newer thread
    unnecessarily.
    
    Change-Id: I9433f0fa4613294103a00a3955fc2f35d8863b59
    Reviewed-on: https://gerrit.libreoffice.org/19974Reviewed-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
    Reviewed-by: 's avatarAndras Timar <andras.timar@collabora.com>
    Tested-by: 's avatarAndras Timar <andras.timar@collabora.com>
    945da612
Adı
Son kayıt (commit)
Son güncelleme
..
inc Loading commit data...
qa Loading commit data...
sdi Loading commit data...
source Loading commit data...
uiconfig Loading commit data...
util Loading commit data...
AllLangResTarget_sw.mk Loading commit data...
CppunitTest_sw_filters_test.mk Loading commit data...
CppunitTest_sw_globalfilter.mk Loading commit data...
CppunitTest_sw_htmlexport.mk Loading commit data...
CppunitTest_sw_htmlimport.mk Loading commit data...
CppunitTest_sw_layout_test.mk Loading commit data...
CppunitTest_sw_macros_test.mk Loading commit data...
CppunitTest_sw_mailmerge.mk Loading commit data...
CppunitTest_sw_odfexport.mk Loading commit data...
CppunitTest_sw_odfimport.mk Loading commit data...
CppunitTest_sw_ooxmlexport.mk Loading commit data...
CppunitTest_sw_ooxmlexport2.mk Loading commit data...
CppunitTest_sw_ooxmlexport3.mk Loading commit data...
CppunitTest_sw_ooxmlexport4.mk Loading commit data...
CppunitTest_sw_ooxmlexport5.mk Loading commit data...
CppunitTest_sw_ooxmlexport6.mk Loading commit data...
CppunitTest_sw_ooxmlexport7.mk Loading commit data...
CppunitTest_sw_ooxmlfieldexport.mk Loading commit data...
CppunitTest_sw_ooxmlimport.mk Loading commit data...
CppunitTest_sw_ooxmlw14export.mk Loading commit data...
CppunitTest_sw_rtfexport.mk Loading commit data...
CppunitTest_sw_rtfimport.mk Loading commit data...
CppunitTest_sw_tiledrendering.mk Loading commit data...
CppunitTest_sw_uiwriter.mk Loading commit data...
CppunitTest_sw_uwriter.mk Loading commit data...
CppunitTest_sw_ww8export.mk Loading commit data...
CppunitTest_sw_ww8import.mk Loading commit data...
CustomTarget_generated.mk Loading commit data...
JunitTest_sw_complex.mk Loading commit data...
JunitTest_sw_unoapi.mk Loading commit data...
Library_msword.mk Loading commit data...
Library_sw.mk Loading commit data...
Library_swd.mk Loading commit data...
Library_swui.mk Loading commit data...
Library_vbaswobj.mk Loading commit data...
Makefile Loading commit data...
Module_sw.mk Loading commit data...
PythonTest_sw_python.mk Loading commit data...
README Loading commit data...
UIConfig_sglobal.mk Loading commit data...
UIConfig_sweb.mk Loading commit data...
UIConfig_swform.mk Loading commit data...
UIConfig_swreport.mk Loading commit data...
UIConfig_swriter.mk Loading commit data...
UIConfig_swxform.mk Loading commit data...
ooxmlexport_setup.mk Loading commit data...