Age | Commit message (Collapse) | Author |
|
...and deprecate what cannot be removed for compatibility.
Change-Id: I1ea335af775b867b468b8285113631167729a92a
|
|
Change-Id: I2e49ab149b2bbdad623f8694221b6169cdfd2d9a
|
|
Change-Id: I270bc9c8e0507f44d2c27639e86002c60f4e2e6d
|
|
Change-Id: I3351acf18d334447336ee98761190fdff32d5b85
|
|
interface methods do not check for NULL pointer access, nor do they trap
exceptions
Fixed by Michael Curran
(cherry picked from commit 113171f2a5d726af6c5266e98e8e790ac6729d2d)
Conflicts:
winaccessibility/source/UAccCOM/MAccessible.cxx
Change-Id: I28d4b885a6c2db487c2754c2ca11290b3844570b
|
|
- document general COM threading architecture in vcl README
- document winaccessiblitiy locking in README
- define _ATL_APARTMENT_THREADED for UAccCOM
Change-Id: I7c3fd952f2cdee7d245a818bf33c477e7ea20fc2
|
|
(cherry picked from commit 795b3bb9e59c9bf049d27538c860cd66633dddcf)
Change-Id: I45e495ad8b3513613102b7ce7777803303980fbe
|
|
Change-Id: Ia5f104bfd707bcf4e159c78ca2764c861fb0b6d9
|
|
Change-Id: I548ea294e6c632b8ae95e6745a51d9b12c7e5297
Reviewed-on: https://gerrit.libreoffice.org/7130
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: I56f38bd786f3a026cb2908f28540dc9c4003af83
|
|
Change-Id: I63612bc5bd4e13fcc5c4e57ac73bd9c7bbf4f0e6
|
|
... and see what happens. Hopefully nothing bad since everything should
be thread-safe now.
Change-Id: I333b29bc2066578ccabadb022936a28dafdf7104
|
|
Change-Id: I8046ae37cba87f0e5df550de831229345df1c6f8
|
|
Change-Id: I7e9a94898c6bc8142b46a05ffba56fc41eb125c2
|
|
... in DeleteAccObj(). Otherwise pointers to deleted documents will be
used.
Change-Id: Ia807dc3a2c782019cf7fc874d264058219956d74
|
|
Change-Id: I950072d22cd315d1898b76a2c345121d31d432c4
|
|
The AccObject is stored by value in XIdAccList, so don't call GetResID()
after it has been erased.
Change-Id: I391aad1e3ab71d443cc6e6b92381f74918e0bcfb
|
|
RemoveMeFromBroadcaster() may catch a DisposedException and then not
call NotifyDestroy.
Change-Id: I2b766541c3e6800c88a83aa482de0093714d39c2
|
|
Change-Id: I201fc14a02c47a6c735c65f649c6b9f068d92c71
|
|
The COM components will (usually? always?) be called on the main thread
via COM, and may also be called on any thread from the UNO event
listeners. Both ways may access the global AccWinObjectManager.
So the easiest way to lock all that without introducing new deadlocks
seems to be to just use the SolarMutex.
The fact that the main thread is in a COM STA is rather irrelevant here
since we don't currently do the required manual marshalling of the COM
pointers so they can be accessed from UNO event listeners running in
threads other than the main thread anyway.
To get that to build:
- use prewin.h and postwin.h around ATL headers
- link UAccCOM against vcl
- define both UNICODE and _UNICODE to not break on mis-matching TCHAR
nonsense
Change-Id: I1ccdf7a4a5c2b5f0b9c29ef39d126c4b8a16898a
|
|
Change-Id: Ife0960b235e24f17640b197f952a9a094b7d654d
|
|
Change-Id: I45e1d72b1abf64a965397c50ac3b95b5bbee3206
|
|
Change-Id: Ia469076ec6f815133e77a14940e8afa05e177231
|
|
Change-Id: I479117e0794375f1ec0c96b78db22b3569b456ec
|
|
Replace it with a map for the new direct C++ instantiation and move this
implementation detail to the cxx file.
Change-Id: Ia961da03f8eb899481cf02f430c921aa8abd7c5c
|
|
Multple external definitions of a symbol causes problems when linking
statically, as for Android. Just make the functions static for now, as they
are only used locally in the files where defined anyway.
Change-Id: I8ddbaf01497c171bed4e15f6183ba43461c672d1
|
|
JAB has been discontinued in favor of the native IA2 bridge.
Change-Id: I88461f73c620507d3e97b077ea2abdd2229322e1
Reviewed-on: https://gerrit.libreoffice.org/6819
Reviewed-by: David Ostrovsky <David.Ostrovsky@gmx.de>
Tested-by: David Ostrovsky <David.Ostrovsky@gmx.de>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
Using identifiers starting with underscores is questionable even if they don't
happen to clash with anything used by the language implementation.
Change-Id: I0af605d40d85ea7e47e1047572fbe180270e08ac
|
|
Change-Id: I8efa6fe219df952586aef84db406dd1190e451d5
|
|
Change-Id: I0ab040ae4379995353009f3e852e6efc6760fb59
|
|
... which should result in faster startup if it's disabled.
Change-Id: I39774b0a56f186d08270c2f17b2b20a823f21dc2
|
|
It is possible to retrieve it via the AccTopWindowListener.
Change-Id: I6cc5ab25bc937d0d9f4de54a1bed09a76ce27491
|
|
This only works partially: the ClassObjects are only registered on the
main thread; CoCreateInstance on other threads still fails.
This reverts commit 29c6216af8c502f220bb84857d3dda901ddfd234.
|
|
Change-Id: I7701021befcf1dbad85557c2095fe4bf0b4e0ff1
|
|
Change-Id: I81f98ca83b97bc2e3e419c7a37ad2a011932553b
|
|
It is pointlessly slow and the AccObject has a method for that.
Change-Id: I7ba1cc853255ac3b3b5008657d1cc79efc3a3f4b
|
|
It's disposed iff m_xAccessible is 0.
Change-Id: I3f8bc104784adf82be43bcaf43b7573a9897f82a
|
|
... and clear it in disposing().
Change-Id: I69cfe3cdcf6549a0471453960d1f935d9c3b7a0d
|
|
The manual acquire() call was apparently not coupled with a release()?
Change-Id: I069c969619e9afce2a4b836642cc1675025b11d0
|
|
Change-Id: I68e5c1785b73520cb59ca54a602ea176f8146f6f
|
|
Seems safer to store a Reference
Change-Id: I86ef9d18c03b2a58058d38e2ae43553ecd2c7be6
|
|
Perhaps delayloading the URE dlls makes it easier to register the
UAccCOM.dll during installation or something? Well we don't do that any
more.
Change-Id: Ic7c356f5954f869c8752aab2563f059a27ef731f
|
|
Change-Id: Id0defc7e4fbe5b700362548559e08163a327399b
|
|
There is no need to register UAccCOM.
Change-Id: I37f5c4030abefbd18b6686652a348bc20a05a9db
|
|
... obsoleted by 732ec36edfd09d2091d70c4d71b5f182fe279c45
Change-Id: I7f7a9becac2430a7ed4d096be741b610462a8a00
|
|
Change-Id: Ia9c5d9ce424f810b31ccc8ec939e1ced301329f7
|
|
This is an alternative (to 732ec36edfd09d2091d70c4d71b5f182fe279c45)
solution to the "CoCreateInstance does not work" problem:
replace all CoCreateInstance calls with equivalent calls to create
the components directly.
Since the only reason why this COM stuff needs to be registered
at all is that AccObject uses CoCreateInstance() to create its
COM objects, another possible solution appears to be to simply link
the libraries and instantiate the COM objects directly, without COM.
The only difference appears to be that CoCreateInstance would
automatically add proxy objects in case the COM objects reside in a
single-threaded appartment; not sure if that is relevant here.
Change-Id: I8ffb8af501f6084f3145fa4d4f53366a070e1691
Reviewed-on: https://gerrit.libreoffice.org/6792
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Change-Id: I7e53fa77aada1433f3b311f51e82342bac127b3c
|
|
Change-Id: I53a7773ed76d5a38301b4f9378c56698e4df7e8b
|
|
The COM services are not found because they are not registered in the
registry via regsvr32 (doing that is unnecessary since the components
are only instantiated by winaccessibility code and undesirable since
that would likely register the IAccessible2 types too, breaking A11y
tools) and the special manifest resource #97 that ActivateActContext()
tries to load does not exist in UAccCOM.dll; this would need to be a
XML manifest, the *.rgs and *.tlb that are already included as
individual resources won't work.
After reading ATL headers for hours it is immediately obvious that the
COM components can simply be registered by a call to
CComModule::RegisterClassObjects() from DllMain; this just requires
actually loading the UAccCOM library from somewhere so the DllMain runs.
Change-Id: Id58b754835cd2f1bcada37e5639a6b6042a42fd5
|