sfx2/source/view/viewfrm.cxx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
New commits: commit 60dffd80468e5ca4471bc67d02c58c8c784a86f1 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Fri Jul 12 15:46:45 2019 +1000 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Fri Jul 12 13:38:48 2019 +0200 tdf#126241: make sure to fill input stream before LockOrigFileOnDemand Otherwise, the function returns early, without providing lock file information to the caller. Change-Id: I1740ff0f5a982f7b22f9e3dcdf97631ab6ea6fe0 Reviewed-on: https://gerrit.libreoffice.org/75465 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx index 495b640c7856..406e4ce22fff 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -484,10 +484,21 @@ void SfxViewFrame::ExecReload_Impl( SfxRequest& rReq ) } pMed->CloseAndRelease(); - pMed->GetItemSet()->Put( SfxBoolItem( SID_DOC_READONLY, !( nOpenMode & StreamMode::WRITE ) ) ); pMed->SetOpenMode( nOpenMode ); - + // We need to clear the SID_DOC_READONLY item from the set, to allow + // MediaDescriptor::impl_openStreamWithURL (called indirectly by + // SfxMedium::CompleteReOpen) to properly fill input stream of the + // descriptor, even when the file can't be open in read-write mode. + // Only then can following call to SfxMedium::LockOrigFileOnDemand + // return proper information about who has locked the file, to show + // in the SfxQueryOpenAsTemplate box below; otherwise it exits right + // after call to SfxMedium::GetMedium_Impl. This mimics what happens + // when the file is opened initially, when filter detection code also + // calls MediaDescriptor::impl_openStreamWithURL without the item set. + pMed->GetItemSet()->ClearItem(SID_DOC_READONLY); pMed->CompleteReOpen(); + pMed->GetItemSet()->Put( + SfxBoolItem(SID_DOC_READONLY, !(nOpenMode & StreamMode::WRITE))); if ( nOpenMode & StreamMode::WRITE ) { auto eResult = pMed->LockOrigFileOnDemand( _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits