https://bugs.kde.org/show_bug.cgi?id=501267

Igor Kushnir <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Version Fixed In|                            |6.20
      Latest Commit|                            |https://invent.kde.org/fram
                   |                            |eworks/knewstuff/-/commit/4
                   |                            |e711ba080361561c7b2c212dad9
                   |                            |2ba98dbfa2a1
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #6 from Igor Kushnir <[email protected]> ---
Git commit 4e711ba080361561c7b2c212dad92ba98dbfa2a1 by Igor Kushnir.
Committed on 20/10/2025 at 18:51.
Pushed by igorkushnir into branch 'master'.

Don't make KNSWidgets::Button the parent of KNSWidgets::Dialog

Clicking some instances of KNSWidgets::Button in KDevelop and K3b fails
to open the KNSWidgets::Dialog, closes the dialog that contains the
button after a few seconds, and leaves the application UI unresponsive
to mouse input. Keyboard navigation and shortcuts keep working. Showing
any other dialog via keyboard shortcuts makes mouse input work in the
application again.

Clicking a KNewStuff button in Parley, KLettres and KsirK also fails to
open the KNSWidgets::Dialog and makes the application UI unresponsive to
both mouse and keyboard input. Pressing the Escape key restores normal
responsiveness. This second bug occurs under Xfce but not under KDE
Plasma.

Many other instances of KNSWidgets::Button in KDE applications work
correctly for some reason. The few KNSWidgets::Action instances that I
have tested are unaffected by such bugs. More details about the issues
described above can be found in my comments under the linked bug report.

The passing of a parent to KNSWidgets::Dialog() is the only significant
difference between the management of a KNSWidgets::Dialog instance by
KNSWidgets::Button and KNSWidgets::Action. This commit eliminates the
difference and thereby works around both input responsiveness bugs
described above except in KLettres. That's because KLettres uses
KNSWidgets::Dialog directly rather than KNSWidgets::Button, and
therefore requires a custom workaround.

KNSWidgets::Button stores its instance of KNSWidgets::Dialog in a
unique_ptr. Therefore the now parentless dialog is still destroyed along
with the button. The absence of a parent may affect the location of the
dialog, but I think that the difference is not very important.
FIXED-IN: 6.20

M  +1    -1    src/widgets/button.cpp

https://invent.kde.org/frameworks/knewstuff/-/commit/4e711ba080361561c7b2c212dad92ba98dbfa2a1

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to