sfx2/source/control/recentdocsview.cxx | 1 + sfx2/source/control/recentdocsviewitem.cxx | 1 + 2 files changed, 2 insertions(+)
New commits: commit ca07445944d8a48e810a9399aef5792b92977194 Author: Caolán McNamara <[email protected]> AuthorDate: Thu Aug 12 16:01:51 2021 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Fri Aug 13 10:03:22 2021 +0200 Resolves: tdf#143843 disable the recently-used widget during load We show a busy-cursor but the widget can still be interacted with so another document can be launched by clicking on another recently-used item while the first one is still loading, and the recently-used widget isn't prepared for this scenario so the second to complete load will crash. Disable the recently-used widget when its cursor is set to busy, and in the (unlikely) case that the load doesn't complete normally (missing document or load filter error) and the recently-used widget still exists and its cursor is unset from busy then reenable it for user input at that point. Change-Id: I8f4487f3dbede14c9778e49442366bd9445f1d63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120363 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx index e74c354bef92..4bd614bf8836 100644 --- a/sfx2/source/control/recentdocsview.cxx +++ b/sfx2/source/control/recentdocsview.cxx @@ -431,6 +431,7 @@ IMPL_LINK( RecentDocsView, ExecuteHdl_Impl, void*, p, void ) { pLoadRecentFile->pView->DispatchedLoadRecentUsedFile(); pLoadRecentFile->pView->SetPointer(PointerStyle::Arrow); + pLoadRecentFile->pView->Enable(); } delete pLoadRecentFile; diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx index 8a047b20ee8d..d5dafe2d0e2c 100644 --- a/sfx2/source/control/recentdocsviewitem.cxx +++ b/sfx2/source/control/recentdocsviewitem.cxx @@ -178,6 +178,7 @@ void RecentDocsViewItem::OpenDocument() { // show busy mouse pointer mrParentView.SetPointer(PointerStyle::Wait); + mrParentView.Disable(); Reference<frame::XDispatch> xDispatch; css::util::URL aTargetURL;
