From 30a1c429c24b8de9a51ed066571d3c315f812844 Mon Sep 17 00:00:00 2001 From: Takeshi Abe Date: Fri, 26 May 2017 23:16:57 +0900 Subject: tdf#108024 Keep original selection during DrawViewShell::FuTemporary() Otherwise it was disposed in the middle of its own mouse event handler FuSelection::MouseButtonUp(). Change-Id: I0d96048526dece7232e5a777364ad4da1d64c904 Reviewed-on: https://gerrit.libreoffice.org/37976 Tested-by: Jenkins Reviewed-by: Noel Grandin (cherry picked from commit 96d59ffc572c4cf112405a85aee3366d45bc7757) Reviewed-on: https://gerrit.libreoffice.org/38301 Reviewed-by: Takeshi Abe --- sd/source/ui/view/drviews2.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sd') diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index a189006ea60d..d2a5a202890e 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -1110,7 +1110,8 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) // Set the selection tool as the old one. This in particular important for the // zoom function, in which clicking without dragging zooms as well, and that // makes exiting the object editing mode impossible. - SetOldFunction( FuSelection::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) ); + if (dynamic_cast( GetOldFunction().get() ) == nullptr) + SetOldFunction( FuSelection::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) ); Cancel(); rReq.Ignore (); } -- cgit v1.2.3