diff options
Diffstat (limited to 'patches/vba/vba-reset-screenupdateing.diff')
-rw-r--r-- | patches/vba/vba-reset-screenupdateing.diff | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/patches/vba/vba-reset-screenupdateing.diff b/patches/vba/vba-reset-screenupdateing.diff deleted file mode 100644 index 3b0a609b8..000000000 --- a/patches/vba/vba-reset-screenupdateing.diff +++ /dev/null @@ -1,69 +0,0 @@ -diff --git basic/source/classes/.sbxmod.cxx.swp basic/source/classes/.sbxmod.cxx.swp -deleted file mode 100644 -index cf9f771..0000000 -Binary files basic/source/classes/.sbxmod.cxx.swp and /dev/null differ -diff --git basic/source/classes/sbxmod.cxx basic/source/classes/sbxmod.cxx -index cf5b5a5..7e42498 100644 ---- basic/source/classes/sbxmod.cxx -+++ basic/source/classes/sbxmod.cxx -@@ -98,7 +98,31 @@ SV_IMPL_VARARR(SbiBreakpoints,USHORT) - - SV_IMPL_VARARR(HighlightPortions, HighlightPortion) - -- -+bool UnlockControllerHack( StarBASIC* pBasic ) -+{ -+ bool bRes = false; -+ if ( pBasic && pBasic->IsDocBasic() ) -+ { -+ uno::Any aUnoVar; -+ ::rtl::OUString sVarName( ::rtl::OUString::createFromAscii( "ThisComponent" ) ); -+ SbUnoObject* pGlobs = dynamic_cast<SbUnoObject*>( pBasic->Find( sVarName, SbxCLASS_DONTCARE ) ); -+ if ( pGlobs ) -+ aUnoVar = pGlobs->getUnoAny(); -+ uno::Reference< frame::XModel > xModel( aUnoVar, uno::UNO_QUERY); -+ if ( xModel.is() ) -+ { -+ try -+ { -+ xModel->unlockControllers(); -+ bRes = true; -+ } -+ catch( uno::Exception& ) -+ { -+ } -+ } -+ } -+ return bRes; -+} - ///////////////////////////////////////////////////////////////////////////// - - // Ein BASIC-Modul hat EXTSEARCH gesetzt, damit die im Modul enthaltenen -@@ -750,6 +774,15 @@ USHORT SbModule::Run( SbMethod* pMeth ) - - delete pRt; - pMOD = pOldMod; -+ if ( pINST->nCallLvl == 0 && IsVBACompat() ) -+ { -+ // VBA always ensure screenupdating is enabled after completing -+ StarBASIC* pBasic = PTR_CAST(StarBASIC,GetParent()); -+ if ( pBasic && pBasic->IsDocBasic() ) -+ { -+ UnlockControllerHack( pBasic ); -+ } -+ } - if( bDelInst ) - { - // #57841 Uno-Objekte, die in RTL-Funktionen gehalten werden, -@@ -774,6 +807,11 @@ USHORT SbModule::Run( SbMethod* pMeth ) - pINST->nCallLvl--; // Call-Level wieder runter - StarBASIC::FatalError( SbERR_STACK_OVERFLOW ); - } -+ -+ // VBA always ensure screenupdating is enabled after completing -+ StarBASIC* pBasic = PTR_CAST(StarBASIC,GetParent()); -+ if ( pBasic && pBasic->IsDocBasic() && !pINST ) -+ UnlockControllerHack( pBasic ); - if( bDelInst ) - { - // #57841 Uno-Objekte, die in RTL-Funktionen gehalten werden, |