Bug 150278 - Form control Property Browser dialog doesn't remember last used tab (differently wrong in gtk3 and gen)
Summary: Form control Property Browser dialog doesn't remember last used tab (differen...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
7.0 all versions
Hardware: All All
: medium normal
Assignee: Justin L
URL:
Whiteboard: target:7.5.0
Keywords: bibisected, bisected, regression
Depends on:
Blocks:
 
Reported: 2022-08-05 15:08 UTC by Justin L
Modified: 2022-08-09 11:09 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Justin L 2022-08-05 15:08:23 UTC
Prior to bibisect-linux-x6-7.0's 
bibisect commit:e7cb5671ab586f618b3a45c5e9241f3d1988226c

commit 1efeb17837c22499f00299c033ae59ba3910f7d7
Author: Caolán McNamara on Mon Nov 4 13:06:04 2019 +0000
    weld Property Browser

the control and form property dialogs would remember which tab (general, data, events) was last selected. After that commit, it would always open to the same tab (although something, somehow could affect which tab that actually was.)

Steps to reproduce.
1.) open attachment 145243 [details], and go to Tools - Forms - Design mode
2.) right click on a radio buttton control and chose control properties. Make a note of which tab it is on.
3.) change to a different tab, close the dialog and then open it again. It should remember the last state.

Note: the control properties and form properties shared the same starting tab. Changing one affected the other in 6.4 - and that is fine.

Tested with SAL_USE_VCLPLUGIN=gtk3./instdir/program/soffice.

It was fine with SAL_USE_VCLPLUGIN=gen until
LO 7.3 bibisect commit:02f663e4a553042f364d3cadac96fc3b68c5d33e

commit 33584bc189235b2e0f263cade9f9d759d29448c9
Author: Noel Grandin on Thu Sep 23 13:55:31 2021 +0200
    tdf#144132 Crash when insert formula object in Writer

CC'ed Caolán, Noel
Comment 1 Justin L 2022-08-05 19:07:12 UTC
(In reply to Justin L from comment #0)
(although something, somehow could affect which tab that actually was.)
It restores the second-last tab.
A.) switch to Data tab.
B.) switch to Events tab.
C.) close and reopen. It opens to the Data tab.

During the switch between tabs, getActivePage() still returns the exiting tab. On close, it actually rebuilds (yes, rebuilds) the whole thing from scratch and restores m_sLastValidPageSelection which never got updated to the final tab.
Comment 2 Justin L 2022-08-08 13:01:15 UTC
(In reply to Justin L from comment #1)
> It restores the second-last tab.
During runtime, that too was a gtk3-only thing that worked up until Noel's 7.3 patch. Now it is only true for document-exit-reload for gtk3. gen remembers the last (not second last) on document-exit-reload.

So my guess was that this only worked earlier by accident, by access-after-free.
Comment 3 Justin L 2022-08-08 18:51:08 UTC
It looks like APP same revolutionary fix as MOD from Noel's bug 81293.

Proposed fix at
http://gerrit.libreoffice.org/c/core/+/138002 tdf#150278 sfx2: use provided aInfo, not factory

and

http://gerrit.libreoffice.org/c/core/+/138003 tdf#150278: avoid gen/gtk3 difference in m_xPropBox->GetCurPage()
Comment 4 Commit Notification 2022-08-09 06:44:19 UTC
Justin Luth committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/6161b951c246125caf3efc009def0faf7caccc75

tdf#150278 sfx2: use provided aInfo, not factory

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.
Comment 5 Commit Notification 2022-08-09 09:38:56 UTC
Justin Luth committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/a8ae24a8bd7bfffa75af9d0dc50765d51df9c720

tdf#150278: avoid gen/gtk3 difference in m_xPropBox->GetCurPage()

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.
Comment 6 Commit Notification 2022-08-09 11:06:37 UTC
Justin Luth committed a patch related to this issue.
It has been pushed to "libreoffice-7-4":

https://git.libreoffice.org/core/commit/594003edae99e02b4adef84c12595ace64e73bcd

tdf#150278: avoid gen/gtk3 difference in m_xPropBox->GetCurPage()

It will be available in 7.4.1.

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.
Comment 7 Justin L 2022-08-09 11:09:34 UTC
Only fully fixed in 7.5. (Saving the last-tab instead of second-last-tab fixed for 7.4 too.)
No more backporting please.