svx/source/dialog/hyprdlg.hxx | 1 - svx/source/dialog/hyprlink.cxx | 22 ++++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-)
New commits: commit a500e21d96e40159dd6969a3f494e8a10b571fed Author: Armin Le Grand <a...@apache.org> Date: Fri Feb 7 16:52:18 2014 +0000 i124197 allow URL Toolbar to send URLs to the app more than once diff --git a/svx/source/dialog/hyprdlg.hxx b/svx/source/dialog/hyprdlg.hxx index 35443bc..bee1b6d 100644 --- a/svx/source/dialog/hyprdlg.hxx +++ b/svx/source/dialog/hyprdlg.hxx @@ -93,7 +93,6 @@ private: PopupMenu aLinkPopup; PopupMenu *pTargetMenu; sal_Bool bNoDoc; - sal_Bool bSend; sal_Bool bHasOldName; long nMaxWidth; long nMinWidth; diff --git a/svx/source/dialog/hyprlink.cxx b/svx/source/dialog/hyprlink.cxx index c166bd8..db68cf4 100644 --- a/svx/source/dialog/hyprlink.cxx +++ b/svx/source/dialog/hyprlink.cxx @@ -114,7 +114,6 @@ SvxHyperlinkDlg::SvxHyperlinkDlg( SfxBindings *_pBindings, Window* pParent) : pTargetMenu ( NULL ), bNoDoc ( sal_True ), - bSend ( sal_False ), bHasOldName ( sal_False ), bHtmlMode ( sal_False ) @@ -344,8 +343,7 @@ IMPL_LINK( SvxHyperlinkDlg, TBClickHdl, ToolBox *, pBox ) { case BTN_LINK: { - if (!bSend) // Link ins Dokument einfuegen - SendToApp(HLINK_DEFAULT); + SendToApp(HLINK_DEFAULT); } break; @@ -650,12 +648,23 @@ void SvxHyperlinkDlg::EnableLink() void SvxHyperlinkDlg::SendToApp(sal_uInt16 nType) { + static bool bAlreadyWorking(false); + + if(bAlreadyWorking) + { + OSL_ENSURE(false, "SvxHyperlinkDlg::SendToApp called to potentially run recursively, please check (!)"); + return; + } + + bAlreadyWorking = true; sal_Bool bIsFile = sal_False; - bSend = sal_True; String sURL( aUrlCB.GetText() ); if ( !sURL.Len() ) + { + bAlreadyWorking = false; return; + } String aBase = GetBindings().GetDispatcher()->GetFrame()->GetObjectShell()->GetMedium()->GetBaseURL(); INetURLObject aObj( URIHelper::SmartRel2Abs( INetURLObject(aBase), sURL, URIHelper::GetMaybeFileHdl(), true, false, @@ -674,7 +683,10 @@ void SvxHyperlinkDlg::SendToApp(sal_uInt16 nType) LeaveWait(); QueryBox aBox( this, SVX_RES( RID_SVXQB_DONTEXIST ) ); if ( aBox.Execute() == RET_NO ) + { + bAlreadyWorking = false; return; + } } else LeaveWait(); @@ -700,6 +712,8 @@ void SvxHyperlinkDlg::SendToApp(sal_uInt16 nType) if ( sURL != aUrlCB.GetText() ) aUrlCB.SetText( sURL ); + + bAlreadyWorking = false; } /*-------------------------------------------------------------------- _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits