Created attachment 193574 [details] Sample file with several charts - with and without frozen columns/rows Charts should always update immediately when the data changes, without another command being executed. If column freezing or row freezing or both are used on a worksheet, the data is only updated after using "Recalculate" F9, or after changing the worksheet or scrolling to another cell range. If you have several charts on a worksheet with frozen columns and you click on one of the charts and then click again in a cell, this chart is updated immediately. The second chart will not. If you switch worksheets and return, all charts will not be updated immediately. I have not noticed the same behavior under Linux. After entering data and pressing Enter, the program was not updated immediately. However, if you made a second movement with the cursor keys, it was then updated. My System: Version: 24.2.0.1 (X86_64) / LibreOffice Community Build ID: b4d45829793cddfe67b58a53f495528c75738d8a CPU threads: 8; OS: Windows 10.0 Build 22631; UI render: Skia/Vulkan; VCL: win Locale: en-US (de_DE); UI: en-US Calc: threaded My tests under LO 7.6.6.3 or older behaved normally. Immediate update!
Have changed the value in C3 of first table from 25 to 40. Refreshes immediately in Version: 7.6.4.1 (X86_64) / LibreOffice Community Build ID: e19e193f88cd6c0525a17fb7a176ed8e6a3e2aa1 CPU threads: 6; OS: Linux 6.4; UI render: default; VCL: kf5 (cairo+xcb) Locale: de-DE (de_DE.UTF-8); UI: de-DE Calc: threaded Doesn't refresh in LO 24.2.2.2 on the same system (OpenSUSE 14.6 64bit rpm Linux). Have to press F9 to recalculate. Set this one to NEW and regression
To help narrow down the issue, it seems that the bug occurs when freezing the column (bug does not occur if only the row is frozen). To simplify into steps: 1. Open Calc 2. Add a table with data (or copy the table from attachment 193574 [details]) 3. Select whole table 4. Insert > Chart > Finish 5. Select B2 6. View > Freeze Rows and Columns OR View > Freeze Cells > Freeze First Column 7. Edit B2 with a new number and press Enter Expected results: Chart updates when values of table are changed and columns are frozen Actual results: Chart does not update when values of table are changed and columns are frozen Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 806362b915ee89a4f907905a8ac8c1527ea99223 CPU threads: 6; OS: Windows 10.0 Build 22631; UI render: Skia/Raster; VCL: win Locale: en-US (en_US); UI: en-US Calc: CL threaded
Bibisected win64-24.2. Added Armin Le Grand to cc. This commit is the first instance in which the bug occurs: https://git.libreoffice.org/core/+/596c53b06cbb33d312d58572b61e966e913109f3 commit 596c53b06cbb33d312d58572b61e966e913109f3 [log] author Armin Le Grand (allotropia) <armin.le.grand.extern@allotropia.de> Thu Nov 30 15:33:07 2023 +0100 committer Armin Le Grand <Armin.Le.Grand@me.com> Thu Nov 30 19:52:41 2023 +0100 tree 6e95df2c77d7eca4dae31828abcb3b3b2d99415a parent 96b15a13e9654b399e63661c66df3df6069a6f8f [diff] ------------- Version: 24.2.0.0.alpha1+ (X86_64) / LibreOffice Community Build ID: 596c53b06cbb33d312d58572b61e966e913109f3 CPU threads: 6; OS: Windows 10.0 Build 22631; UI render: Skia/Raster; VCL: win Locale: en-US (en_US); UI: en-US Calc: CL threaded
Taking a look...
Could not reproduce with Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: b99082e4f3d4e4d13433ca062ba98da7cd14aa9a CPU threads: 16; OS: Linux 6.5; UI render: default; VCL: gtk3 Locale: en-US (en_US.UTF-8); UI: en-US Calc: threaded continue trying...
After step (4) from comment 2 I have no menu anymore in calc -> cannot continue (?) In the 'Row' button in the toolbar I could use 'Freeze first row'. Update still works. Used UNDO to revert that freeze, but it's NOT in the UNDO -> chart gets removed (?). So used REDO to get back to the chart -> LO cashed (?) Found a way to keep the menu: after insert chart, do not immediately click besides the chart to deactivate OLE, but once on the chart and then besides. Could now reproduce a situation where update is missing. Update happens as soon as i move the cursor one more cell. Update always happens when using mouse to end the input. Update also happens when zooming in/out slightly -> update problem (?)
Looks like the check in ScOutputData::DrawSelectiveObjects if for mpDev a PaintWindow is registered can fail. That can happen when ScGridWindow::DrawContent called ScOutputData::SetContentDevice with the result of SdrPaintWindow::GetTargetOutputDevice(). This is because that may return a pre-render device, so THAT OutDev will not e one registered using a PageWindow. In that case, the workaround I added https://gerrit.libreoffice.org/c/core/+/160155 is triggered unwanted. Thought about different possibilities to avoid that. Unfortunately that area with SdrPaitView/PageWindpw/PaintWindow is highly complex. It is only needed in Calc when views get split anyways, s a candidate for some rework - but not now. I now remember the OriginalTargetDevice when the ScOutputData gets created. That pt is not changed, so should be safe for comparisons with PaintWindow. This is the safest solution I could find for now.
Solution on https://gerrit.libreoffice.org/c/core/+/166151, lets see what the UTs say...
Armin Le Grand (allotropia) committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/1e1a3825d76ed8071424e8e21bbda23464c10fff tdf#160589: compare the correct OutDev with PageWindows It will be available in 24.8.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.
Hello Armin, I have tested again under Daily Build from 2024-Apr-17 02:50: Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 0957ee9f5d379c80fca4027c187b471118d0490d CPU threads: 8; OS: Windows 10.0 Build 22631; UI render: Skia/Vulkan; VCL: win Locale: de-DE (de_DE); UI: de-DE Calc: threaded Everything is running fine. The charts are updated immediately! Thank you for your great job!
(In reply to Jürgen Kirsten from comment #10) > Everything is running fine. The charts are updated immediately! > Thank you for your great job! Closing this issue as RESOVLVED FIXED since original poster confirmed the fix. Great job Armin!
Armin Le Grand (allotropia) committed a patch related to this issue. It has been pushed to "libreoffice-24-2": https://git.libreoffice.org/core/commit/c8d067868792e6de49bde70507bd30261d3fbd3d tdf#160589: compare the correct OutDev with PageWindows It will be available in 24.2.5. 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.
Armin Le Grand (allotropia) committed a patch related to this issue. It has been pushed to "libreoffice-24-2-4": https://git.libreoffice.org/core/commit/1f6b6fb6d8eeacfc5cfe2334d390c9e3fd2815e5 tdf#160589: compare the correct OutDev with PageWindows It will be available in 24.2.4. 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.