summaryrefslogtreecommitdiff
path: root/embeddedobj/source/msole
AgeCommit message (Collapse)Author
2024-06-21Make sure to clear the guard around OleEmbeddedObject::changeStateMike Kaganski
The method itself clears its own guard; the caller still holding the guard results in hangs seen in some Java code. See also commit e2bfc34d146806a8f96be0cd2323d716f12cba4e (Reimplement OleComponentNative_Impl to use IGlobalInterfaceTablem 2024-03-11). Change-Id: Ib22e71e7500ccceb946f7b1d6606f8f61ae2afe8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169315 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-05-08loplugin:ostr in embeddedobjNoel Grandin
Change-Id: I644042d0ca6041174a8e11f780c546bcf7d4571a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167282 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-04-04Use osl::ResettableMutexGuardScopedReleaser instead of ad-hoc guardsMike Kaganski
Change-Id: I2aa09655c207d3647650b5e38011a600bd221699 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165777 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-26This assert was wrongMike Kaganski
In commit e2bfc34d146806a8f96be0cd2323d716f12cba4e (Reimplement OleComponentNative_Impl to use IGlobalInterfaceTable, 2024-03-11), I added the assert in a false assumption that RunObject may only be called once. Indeed, this is not so. Thus just make sure to not try to register it second time. Change-Id: I36fc4f3939bd0061e462659749bba8e4bd3075ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165299 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-26Replace some matchAsciiL (and wrong lengths) with matchMike Kaganski
Change-Id: I6d0b5fa249cb466230183e11fc96a89fad69d45d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165310 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-25Relax SolarMutexReleaser precondition to not require SolarMutex lockMike Kaganski
As discussed on https://gerrit.libreoffice.org/c/core/+/164843/2#message-8873d3d119de7206b33bc824f5809b8b1d3d97da, it is impossible at times to know in advance, if a specific code, that must not be guarded by SolarMutex (e.g., calling to other threads, which might need to grab the mutex), will itself be guarded by SolarMutex. Before this change, a required pre-requisite for SolarMutexReleaser use was existing lock of SolarMutex; otherwise, an attempt to release it would call abort(). Thus, in some places we had to grab the mutex prior to releasing it, and that itself introduced more potential for deadlock. Now the SolarMutexReleaser is safe to use without the lock, in which case, it will do nothing. Change-Id: I8759c2f6ed448598b3be4d6c5109804b5e7523ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165262 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-20Pass m_pOleComponent to lambda by copyMike Kaganski
Both m_pOleComponent and the copy are rtl::Reference, so the copy will ensure the lifetime of the object. See https://gerrit.libreoffice.org/c/core/+/164986/2#message-5dd187741df3242f47d1037a1f9c9b0fd9bb1f8e Change-Id: I092281ce41786682b269ba048f102877117391f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165013 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-19Release the mutex when calling the OLE methodMike Kaganski
... which may need to be executed on a different thread. Change-Id: Id9e4b86fd3eafa49139b21e3817aa1ee8aff3dba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164986 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-13Introduce a guard to delay processing of idlesMike Kaganski
In a following scenario, there could be a crash: 1. Platform: a Windows system with MS Word installed. 2. LibreOffice is run in a listener mode; 3. A Java program opens a Writer document in a visible mode, with an embedded Word OLE object; 4. It adds some text; then resizes the OLE object; then removes the OLE object. Word OLE objects have OLEMISC_RECOMPOSEONRESIZE flag [1]; this means, that every re-layout of the document with this object must ask the OLE server to re-layout the object content. So, the request thread changes the document text, which triggers idle re-layout or redraw; the idles start executing immediately in the idle main thread, with solar mutex locked; then the request thread starts the OLE object removal operation. The ongoing relayout in main thread would at some stage need to execute a call to the OLE object, which temporarily releases the solar mutex (this makes impossible using solar mutex to synchronize the order of operations in this scenario). Other mutexes guarding OLE object (in OleEmbeddedObject, and in OleComponent) are also released for the duration of the call. Thus, the removal that happens in the request thread proceeds, and the node containing the OLE object is destroyed, while the main thread (processing exactly this node) is waiting for the OLE server response, then for mutexes, to proceed. After that, the main thread would attempt to access the destroyed node object. This change introduces a scheduler guard (a RAII object), that sets a flag to not process idle events during the lifetime of the guard. In its constructor, it also makes sure, that current pending idle events are finished. This would make sure that guarded code started from other threads would not race with idles potentially accessing the model that is currently in transient state. [1] https://learn.microsoft.com/en-us/windows/win32/api/oleidl/ne-oleidl-olemisc Change-Id: I2ef0601ccd8b5872588a88493d1f43e39022dbed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164753 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-11Fix typoAndrea Gelmini
Change-Id: I9d09cb02d5fed17d48f0bc42ac41cf8bad3b66b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164667 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-03-11Fix typoAndrea Gelmini
Change-Id: Idc184c5155fa69888561fed5709da36c330d1c2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164666 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-03-11Drop old "SvGlobalName order" compatibility hackMike Kaganski
It was added in commit 7afe74c37ed737f9d7a7c9c77877a0bde6997771 (INTEGRATION: CWS os54 (1.21.10); FILE MERGED, 2005-03-11) for issue #i30510# related to "StampIt". Hopefully now, after almost 20 years, the hack is not needed anymore. Change-Id: Id39765b9d2c51fd487c48ce06382c068bab08959 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164459 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-11Reimplement OleComponentNative_Impl to use IGlobalInterfaceTableMike Kaganski
... to make sure that object methods are called in correct apartment The user-visible problem was, that running a Java code that connects to LibreOffice, and opening a document with an embedded OLE object (it was Word object in a specific case, which needs activation at opening stage, because these objects have OLEMISC_RECOMPOSEONRESIZE flag), using loadComponentFromURL with "OnMainThread" set to true, then closing the document, resulted in a hang after several hundreds iterations. This was caused by Word process, that was started in background to serve the COM calls, wasn't closed properly, and kept all the objects in memory, until OOM. The reason why it wasn't closed was failed call to IOleObject::Close in OleComponent::CloseObject, which returned RPC_E_WRONG_THREAD, because the activation of the OLE object happened in the main thread (because of "OnMainThread"), which is STA, but closing happened in the handler thread (belonging to MTA). Similar problems previously were addressed in commits 2dc3a6c273cb82506842864481d78df7294debbf (framework: allow loading a component on the main thread, 2018-12-20), 6002014ce0a5c9cea22c14b2437b7a508b2c72cb (framework: allow loading a component on the main thread, using XDesktop, 2021-04-28), d5cd62164d32273a25913c93aa04be9f7f3a4073 (embeddedobj: handle getting the visible area on a thread, 2021-05-07). These changes tried different workarounds for the same problem, when a COM object instantiated in one apartment is later manipulated from another, which fails. First two handled the case when the document is loaded from a non-UI thread, and then manipulated with the UI; to handle that, they introduced flags that delegated opening the file to the main (UI) thread. The last change tried to handle the reverse problem of the OLE object instantiated in the main thread was saved in a handler thread, which again failed; the workaround was, again, to try to delegate the second attempt to the main thread. But basically all methods can fail in such circumstations, as shown in this problem's case. The "OnMainThread" flag must be passed to fileopen functions explicitly. Also, the workarounds only work by passing everything to STA, and don't target a case when the calls must be passed from STA to MTA. Since Windows 2000, there is IGlobalInterfaceTable, which goal is to solve this problem. It allows to use an intermediate object, which can transparently delegate all calls to the correct thread. This change re-implements how OLE objects are referenced from OleComponentNative_Impl, using the said IGlobalInterfaceTable. This should hopefully obsolete the previous workarounds, which nevertheless are kept for now. Change-Id: Ia1c590e547ed24a2c7389283aed6cc3d8ea024b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164457 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-07tdf#158375: make it possible to hot disable embedded objectsSarper Akdemir
Do not require a reload of the current document for the embedded objects to be disabled. Also make sure the existing active embedded objects are disabled when DisableActiveContent is enabled via options dialog. Change-Id: I5a8f302af0cac64575c3e5ec6dbe71ec50a15442 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164367 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2024-03-06Drop some reinterpret_castsMike Kaganski
Change-Id: I5bcfe37adbf1f142950a1a2679f22333c711735e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164456 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-06Check the correct memberMike Kaganski
It's m_pViewObject2 that will be dereferenced below. Change-Id: Ic3696953f013099ee2595a08428ba793c81b6b9c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164455 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-02-26Link to oledlg, and use OleUIInsertObjectW directlyMike Kaganski
... instead of manually loading and using OleUIInsertObjectA. Change-Id: I597dd44e13edf8c94d83f434b57142c88e5aca6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163922 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-27Drop std::as_const from css::uno::Sequence iterationsMike Kaganski
Obsoleted by commit 2484de6728bd11bb7949003d112f1ece2223c7a1 (Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and commit fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[] in internal code, 2021-11-05). Change-Id: Idbafef5d34c0d4771cbbf75b9db9712e504164cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162640 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-12-20tdf#158375: further disable embedded objectsSarper Akdemir
there was the possibility of constructing an OOoEmbeddedObjectFactory or OleEmbeddedObjectFactory directly instead of UNOEmbeddedObjectCreator. So disable all createInstance calls for them too. Securing there won't be active embedded objects. Change-Id: Ib47ad920d4951790c12d1a8587505cab2f1e126d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160921 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-10-19Extended loplugin:ostr: Automatic rewrite O[U]StringLiteral: embeddedobjStephan Bergmann
Change-Id: I2761e0a093aff75c5660b2b78012277c67eb8e17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158191 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-09-28Improve OleRun error reportingMike Kaganski
1. Pass its error message up the call stack as the exception's message. 2. In case of REGDB_E_CLASSNOTREG, also obtain the object's class name and append it to the message. 3. Show this information in the message displayed for OLE activation error. This introduces a new SetExtendedMessage method in SfxErrorContext to store extra information for specific errors. Change-Id: Id3863276266d992ae407fbfa5568acf5c57aa96f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157372 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-09-27OUString -> OUStringLiteralMike Kaganski
Change-Id: I80b6c736960badf1a6e3af89740a80f46a651f9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157305 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-09-13loplugin:unodispose in editeng..extensionsNoel Grandin
Change-Id: I6545cf93b0a101d3a3eea0abe9c1732fcf3dc2d0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156850 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-03-23tdf#42982 Improve UNO API error reportingJani Saranpää
Change-Id: If8c8e96c2d8365f10a191868e76e75d6fc7c5db9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149357 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2022-10-18tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macroOmkarAcharekar
Change-Id: I35c883a1b05a797e83a41698fa205796e681d7c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141482 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2022-09-12Fix typoAndrea Gelmini
Change-Id: I7c98360de8f476ddb5e9eaa9c3c7e8bf0f5cdc2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139788 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-09-10tdf#119039: workaround an OleLoad bug releasing passed storage unexpectedlyMike Kaganski
See https://developercommunity.visualstudio.com/t/10144795 Change-Id: I75ee88c1dd50e0772c358967ac09b7788156d9f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139756 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-18Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxxStephan Bergmann
...so that its TOOLS_WARN_EXCEPTION can be used in comphelper/source/misc/logging.cxx in a follow-up commit. (And while at it, rename from diangose_ex.h to the more appropriate diagnose_ex.hxx. The comphelper module is sufficiently low-level for this immediate use case, so use that at least for now; o3tl might be even more suitable but doesn't have a Library until now. Also, for the immediate use case it would have sufficed to only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION, TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of include/tools/diagnose_ex.h into an additional new include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move the complete include file as is.) Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-21clang-tidy modernize-pass-by-value in embeddedobjNoel Grandin
Change-Id: I5ed8591a3c3ae58d5ddf921814b8d7a373f9c76e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136202 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-14tdf#121740 cache hashcode in SequenceAsHashMapNoel Grandin
shaves 2% off load time Change-Id: I5bd4eabf61205df21a27d2822acd2676a7732a3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134315 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-04Just use Any ctor instead of makeAny in embeddedobjStephan Bergmann
Change-Id: I7e00a4b17b9fc3ccfb360ae5737d253a7d31d02b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133819 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-02loplugin:stringviewStephan Bergmann
Change-Id: I266dc947f9590f869ca7245d776263c692f02be5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133688 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-17Recheck modules [e-f]* with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: I49a3ce10dee4b03f99156f5b641f69448e1d5617 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128479 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-10small cleanups to TempFile related codeNoel Grandin
unnecessary temporary variables Change-Id: Iefa6c9a6627311495e6cd2f01f5446082ae0589d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128208 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-09Simplify some TempFile service codeNoel Grandin
Change-Id: Id39be33dcc5aa9378e29c850cb71d3662093ab25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128189 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-15Recheck include/[a-d]* with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: I42475b8e75951d5dcae2fe6b0ad0bca64441e7f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126837 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-11-13Use o3tl::convertMike Kaganski
Change-Id: I78db3001d602ec1a0847785b3c127b9d345f5af7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125173 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-12coverity: annotate with markup so they will stay silencedCaolán McNamara
Change-Id: I8ac0ae4cd64d8171eebd98d89d1fe954280987b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125072 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-30Prepare for removal of non-const operator[] from Sequence in embeddedobjMike Kaganski
Change-Id: I19432a1e506526fdc1cd98625d9cfff12ea2f973 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124361 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-16Fix a forgotten return of the valueMike Kaganski
... ever since its introduction in commit 5ea5c0afebd272d5f44e6524c0f67b5317639919 Change-Id: Ic2f082db43c961185921137c6b64b2e1abef28e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123704 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-16Use sal::systools::COMReference and drop ComSmartMike Kaganski
Change-Id: Ic6e0c87f607264629cdec1fdcd0c3144d8fbf8e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123695 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-16Fix the copypaste errorMike Kaganski
... ever since commit 6eea9416a3a5be2d2f6aab6c58ab4e6d4b085ea8 Change-Id: Ic3f6f6876d398cd48cd480518d99a516cea95a31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123636 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-09-30Extended loplugin:referencecasting/redundantcast (clang-cl): embeddedobjStephan Bergmann
Change-Id: I345b6535df2df4770191dc1aae0ca024b747a50a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122887 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-29embeddedobj: add a status indicator for the Further objects dialogMiklos Vajna
Inserting a large file can take a while, and we do it on the main thread, so the UI is frozen during the operation. Create the progressbar in cui, which is allowed to link against sfx2/ and then pass it down to embeddedobj/. Similarly for the label of the progressbar, again because cui is allowed to link against svx/. Change-Id: I53fec4e14df647b140647d9ff5a3a37c0aa9e72e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122825 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 4Mike Kaganski
- Change implementations of getSomething to use getSomethingImpl Or where that's impossible, use getSomething_cast to unify this and reduce number of places where we reinterpret_cast. All static methods getting tunnel ids were renamed to getUnoTunnelId, to comply with the convention used in <comphelper/servicehelper.hxx>. TODO (in separate commits): - Revise uses of getSomething to use getFromUnoTunnel Change-Id: Ifde9e214b52e5df678de71fcc32d2199c82e85cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122100 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-23loplugin:referencecasting look through more clang TypesNoel Grandin
Note that because of where the fix resides, loplugin:redundantcast also notices a few more things. Change-Id: I0b66047fadfff2c5ceafcbd3eab085de00d861a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120865 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-10embeddedobj: implement XServiceInfo in the various embedded obj implementationsMiklos Vajna
This gives UNO clients a reliable way to detect e.g. OSpecialEmbeddedObject, where it's expected that double-clicking on the object doesn't do anything. Change-Id: I595453490b157b64214cd7359da1e3a3c959191d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120274 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-08-07create comphelper::OMultiTypeInterfaceContainerHelper2 and use itNoel Grandin
based on OInterfaceContainerHelper2 which is considerably faster than the original OInterfaceContainerHelper Change-Id: I9c8b6d0e5382018824bf7188a26343703abf2d51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120161 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-14sfx2: handle OnMainThread=true in SfxOfficeDispatch::dispatch()Miklos Vajna
This is needed when an out of process Java UNO client registers their command dispatch interceptor, Windows OleInitialize() has been called already on the main thread and then dispatching e.g. uno:Paste (which would interact with OLE) would call OLE functions on a thread, which would fail with RPC_E_CHANGED_MODE. In other words, a situation similar to commit 22aa6508e0a65e65a6f9410b498fe4fd6c236639 (framework: allow dispatching a command on the main thread, 2019-01-29), but that one was for DispatchHelper, this one is for XDispatch implementations. Change-Id: If5a80fe36962e014e781d2a8c156055f127e69a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118886 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-07-09loplugin:indentation (clang-cl)Stephan Bergmann
Change-Id: Iae559ca8bee9650c01167a4d1b918e18cbf03c28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118660 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>