Created attachment 180235 [details] Chart in text document I have a text document and a spreadsheet each with a chart based on a table. Both documents contain a very similar macro, which deletes a column in the chart. To update the object in the hosting document to the change, the macro uses the method 'update()'. That works for the chart in Calc, but not for the chart in Writer. If you double-click the chart in Writer or save and reload the document you can see, that the macro has indeed changed the chart, only the object was not updated. The same method 'update()' works for a Math-object in Writer. Therefore I consider it a bug, that the method does not work for a Chart. To see the problem do this: Open the attached document and allow execution of macros. Select the chart, but do not go to edit mode. Press Alt+F11, select the macro which is contained in the document, and run it.
Created attachment 180236 [details] Chart in spreadsheet
Created attachment 180237 [details] Update() with explicit ExtendedControlOverEmbeddedObject OpenOffice.org needs the explicit version with ExtendedControlOverEmbeddedObject and window refresh is not complete (scroll up and down). But besides that, the method update() works in Writer in OOo.
It fails in Version: 5.4.7.2 (x64) Build ID: c838ef25c16710f8838b1faec480ebba495259d0 CPU threads: 8; OS: Windows 6.19; UI render: default; Locale: de-DE (en_US); Calc: CL The method update() works in Version: 5.2.6.2 Build ID: a3100ed2409ebf1c212f5048fbe377c281438fdc CPU Threads: 8; OS Version: Windows 6.2; UI Render: default; Locale: de-DE (en_US); Calc: group
I tried to bisect the issue, but I have no idea if I hit the right commit: 61cb66513bfdaa5e47fb419d476107b40e62e7d0 is the first bad commit commit 61cb66513bfdaa5e47fb419d476107b40e62e7d0 Author: Norbert Thiebaud <nthiebaud@gmail.com> Date: Sat Jul 9 12:38:32 2016 -0700 source 64e1113916a6b19b30f95b454018528571ac84df source 64e1113916a6b19b30f95b454018528571ac84df instdir/program/mswordlo.dll | Bin 2338816 -> 2338816 bytes instdir/program/swlo.dll | Bin 13363200 -> 13364736 bytes instdir/program/swuilo.dll | Bin 2340864 -> 2340864 bytes instdir/program/vbaswobjlo.dll | Bin 1238528 -> 1238528 bytes instdir/program/version.ini | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-)
$ git bisect log # bad: [a374222bc87bd9e75ea2f1ca45d189932a1967f8] source aa09fd58bd499a2a2c3a32c5f613892bad54076c # good: [defb73f1c6e2a66dbd21ba89e684f57427e8bc4b] source 5b168b3fa568e48e795234dc5fa454bf24c9805e git bisect start 'master' 'oldest' # bad: [d791065d20ccc176e3d03a3786283ec0c0a83376] source ec2aa9c5ba7a6ccd1f71c26cd78af11007ad5baa git bisect bad d791065d20ccc176e3d03a3786283ec0c0a83376 # bad: [c3961a96e0f7f4e1af95c821ab1fcd0ff53c7613] source 6431f5554bd585935e7a9bc354609a4363a09509 git bisect bad c3961a96e0f7f4e1af95c821ab1fcd0ff53c7613 # good: [4ce2ca6758ee18ef6d3537d21f953e18b59c2fbd] source c3453ea24608123195588ea910b8db7b13922054 git bisect good 4ce2ca6758ee18ef6d3537d21f953e18b59c2fbd # good: [03bb97f5fbf8932aa2b8dca29120ed43f5dc9b8b] source 110a500b68bbc9010cf1cf896ef611c397c27d6f git bisect good 03bb97f5fbf8932aa2b8dca29120ed43f5dc9b8b # good: [af5035a9b51c2562c0f2dfaa1270c1b72173cbae] source cdf3a3907e19111bc602f9697b2c158cd32adb23 git bisect good af5035a9b51c2562c0f2dfaa1270c1b72173cbae # bad: [e001b49a940ea2ff5074c3b142d465b7a6121fcb] source ec950f8ebb2745ccff2275dcc09d2034cd73dfeb git bisect bad e001b49a940ea2ff5074c3b142d465b7a6121fcb # bad: [c47850c4d0f23617c3045bf07f46eeca475c1e43] source 025592c074ec4a21bab0db572aac1233462919ae git bisect bad c47850c4d0f23617c3045bf07f46eeca475c1e43 # bad: [eb63582c0aeb3f45236f5bf3fc63052c4a93f09b] source 467887d3c938b48d13f70e559e15ffd081de512d git bisect bad eb63582c0aeb3f45236f5bf3fc63052c4a93f09b # bad: [d3eabf22d1bdd8aa0cf77407c155da2129f01d1a] source a9d87f33d229babcd898f9b5af575eb94b382a28 git bisect bad d3eabf22d1bdd8aa0cf77407c155da2129f01d1a # bad: [b616365617c750a224c36cfff7e512205db36003] source de7d596d116b5231bff000a57be3fae481744bab git bisect bad b616365617c750a224c36cfff7e512205db36003 # good: [569ac70c28299ba3af09d84ea0ed2948fcabfed3] source 8550366138d576123b9e66a1a7915a04026d79cd git bisect good 569ac70c28299ba3af09d84ea0ed2948fcabfed3 # good: [6b4743d1760978fef979a74361786c2881086f76] source 30fdc46969f3c90c47cddf18d0dde640c8ea280e git bisect good 6b4743d1760978fef979a74361786c2881086f76 # bad: [61cb66513bfdaa5e47fb419d476107b40e62e7d0] source 64e1113916a6b19b30f95b454018528571ac84df git bisect bad 61cb66513bfdaa5e47fb419d476107b40e62e7d0 # first bad commit: [61cb66513bfdaa5e47fb419d476107b40e62e7d0] source sha:64e1113916a6b19b30f95b454018528571ac84d
(In reply to Andreas Heinisch from comment #4) > I tried to bisect the issue, but I have no idea if I hit the right commit: > 61cb66513bfdaa5e47fb419d476107b40e62e7d0 is the first bad commit > commit 61cb66513bfdaa5e47fb419d476107b40e62e7d0 > Author: Norbert Thiebaud <nthiebaud@gmail.com> > Date: Sat Jul 9 12:38:32 2016 -0700 > > source 64e1113916a6b19b30f95b454018528571ac84df > > source 64e1113916a6b19b30f95b454018528571ac84df > > instdir/program/mswordlo.dll | Bin 2338816 -> 2338816 bytes > instdir/program/swlo.dll | Bin 13363200 -> 13364736 bytes > instdir/program/swuilo.dll | Bin 2340864 -> 2340864 bytes > instdir/program/vbaswobjlo.dll | Bin 1238528 -> 1238528 bytes > instdir/program/version.ini | 2 +- > 5 files changed, 1 insertion(+), 1 deletion(-) Looks relevant: https://git.libreoffice.org/core/+/64e1113916a6b19b30f95b454018528571ac84df You can check it with following: git checkout 61cb66513bfdaa5e47fb419d476107b40e62e7d0 -> bug should be here git checkout HEAD~1 -> bug should not be here (move one commit before 61cb66513bfdaa5e47fb419d476107b40e62e7d0)
Adding Cc: to Armin Le Grand May you take a look at this one? Thank you very much!
After digging quite some time & comparing why SC works, I found that while SC uses EmbedEventListener_Impl which has a XModifyListener component and a ::modified(...) call, the class used for this in SW which is SwOLEListener_Impl does not have that. Digging deeper how that can be extended to make SW react and then - if possible - reach out to the buffered Chart data in SW which would need a call/acess to SwOLEObj::resetBufferedData Let's hope the best...
Got that connected, but somehow also EmbedEventListener_Impl::modified is called when the writer example is triggered - have to check if this is due to my changes or was so before, too
Possible solution on gerrit1: https://gerrit.libreoffice.org/c/core/+/141803
Armin Le Grand (allotropia) committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/ac0e74209c4f7a7eb7702468cecd3b996227c278 tdf#149189 detect and handle graphic change on Sw OLE It will be available in 7.5.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.