Bug 166541 - Welcome dialog: Next closes immediately (gtk3)
Summary: Welcome dialog: Next closes immediately (gtk3)
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Heiko Tietze
URL:
Whiteboard: target:25.8.0
Keywords:
Depends on:
Blocks:
 
Reported: 2025-05-12 13:04 UTC by Heiko Tietze
Modified: 2025-05-12 14:41 UTC (History)
0 users

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 Heiko Tietze 2025-05-12 13:04:49 UTC
Michael Weghorn:

When clicking the "Next" button, the dialog instantly closes with

    the gtk3 VCL plugin
    the qt6 VCL plugin with SAL_VCL_QT_USE_WELDED_WIDGETS=1 when the pending change series up to https://gerrit.libreoffice.org/c/core/+/185216 is applied (to support this dialog when using native Qt widgets)

This seems related to using the cancel button for something else ("Next") here.

See frames 2/3 in below backtrace (for the qt6 case) where clicking the "Cancel" button results in the dialog getting closed:

1   QtInstanceDialog::response                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                QtInstanceDialog.cxx       110  0x7f7d6a63d3eb 
2   SfxTabDialogController::CancelHdl                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         tabdlg.cxx                 408  0x7f7d781c2fa8 
3   SfxTabDialogController::LinkStubCancelHdl                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 tabdlg.cxx                 406  0x7f7d781c280d 
4   Link<weld::Button&, void>::Call                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           link.hxx                   105  0x7f7d6a62cb51 
5   weld::Button::signal_clicked                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              weld.hxx                   1558 0x7f7d6a62c96c 
6   QtInstanceButton::buttonClicked                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           QtInstanceButton.cxx       109  0x7f7d6a62a3ad 
7   QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton:: *)()>::call(void (QtInstanceButton:: *)(), QtInstanceButton *, void * *)::{lambda()#1}::operator()() const                                                                                                                                                                                                                                                                                                                                                 qobjectdefs_impl.h         127  0x7f7d6a62cf71 
8   QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton:: *)()>::call(void (QtInstanceButton:: *)(), QtInstanceButton *, void * *)::{lambda()#1}>(void * *, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton:: *)()>::call(void (QtInstanceButton:: *)(), QtInstanceButton *, void * *)::{lambda()#1}&&)                                                                                                 qobjectdefs_impl.h         65   0x7f7d6a62cea9 
9   QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton:: *)()>::call(void (QtInstanceButton:: *)(), QtInstanceButton *, void * *)                                                                                                                                                                                                                                                                                                                                                                                   qobjectdefs_impl.h         126  0x7f7d6a62cddb 
10  QtPrivate::FunctionPointer<void (QtInstanceButton:: *)()>::call<QtPrivate::List<>, void>(void (QtInstanceButton:: *)(), QtInstanceButton *, void * *)                                                                                                                                                                                                                                                                                                                                                                                                                     qobjectdefs_impl.h         174  0x7f7d6a62cd5d 
11  QtPrivate::QCallableObject<void (QtInstanceButton:: *)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void * *, bool *)                                                                                                                                                                                                                                                                                                                                                                                                                  qobjectdefs_impl.h         545  0x7f7d6a62cc86 
12  QtPrivate::QSlotObjectBase::call                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          qobjectdefs_impl.h         461  0x7f7d695061d2 
13  doActivate<false>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         qobject.cpp                4241 0x7f7d69729cd4 
14  QMetaObject::activate                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     qobject.cpp                4301 0x7f7d6971fec3 
15  QMetaObject::activate<void, bool>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         qobjectdefs.h              319  0x7f7d675d83eb 
16  QAbstractButton::clicked                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  moc_qabstractbutton.cpp    252  0x7f7d6782c8e2 
17  QAbstractButtonPrivate::emitClicked                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       qabstractbutton.cpp        381  0x7f7d6782c7f7 
18  QAbstractButtonPrivate::click                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             qabstractbutton.cpp        374  0x7f7d6782c64f 
19  QAbstractButton::mouseReleaseEvent                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        qabstractbutton.cpp        976  0x7f7d6782daff                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             [...]

See also SfxTabDialogController::SfxTabDialogController for where that handler is connected:

m_xCancelBtn->connect_clicked(LINK(this, SfxTabDialogController, CancelHdl));
Comment 1 Commit Notification 2025-05-12 14:41:29 UTC
Heiko Tietze committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/86e62c4ec7e076244b29ccb329abbaecedf70f37

Resolves tdf#166541 - Welcome dialog must not use standard buttons

It will be available in 25.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.