https://bugs.kde.org/show_bug.cgi?id=374224
Bug ID: 374224 Summary: KFileDialog Options drop-down menu grabs keyboard and mouse with QtCurve style Product: frameworks-kdelibs4support Version: unspecified Platform: Compiled Sources OS: All Status: UNCONFIRMED Severity: major Priority: NOR Component: general Assignee: kdelibs-b...@kde.org Reporter: rjvber...@gmail.com Target Milestone: --- There is an annoying interaction between the QtCurve widget style and KFileDialog's Options dropdown menu - On Mac, the menu opens but none of its menu items (actions) can be selected. It can only be closed by giving focus to another application. - Under X11 (Linux and on Mac with Qt's XCB QPA) the menu opens and GRABS keyboard and mouse focus. The only way to escape from that near-deadlock is to kill the application via a non-X11 console, a remote login etc. This happens with no other style but also with no other drop down menu rendered with QtCurve that I know of. QtCurve does not do screen or mouse grabbing itself (and the Mac build doesn't include any X11 code even when using the XCB QPA). The hang/freeze/whatever does not occur in QtCurve code. A backtrace obtained after killing `kdialog --getsavefilename` with `sleep 20 ; killall -ABRT kdialog`: Application: KDialog (kdialog), signal: Aborted Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x7f9e95288800 (LWP 4772))] Thread 3 (Thread 0x7f9e7fc53700 (LWP 4775)): #0 0x00007f9e90ee7fdd in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f9e8db79b72 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #2 0x00007f9e8db7b64f in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #3 0x00007f9e822a1f09 in QXcbEventReader::run (this=0x1715350) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1331 #4 0x00007f9e91596cf9 in QThreadPrivate::start (arg=0x1715350) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/thread/qthread_unix.cpp:365 #5 0x00007f9e8c19e184 in start_thread (arg=0x7f9e7fc53700) at pthread_create.c:312 #6 0x00007f9e90ef537d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 2 (Thread 0x7f9e7e528700 (LWP 4776)): #0 0x00007f9e90ee7fdd in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f9e8b41bfe4 in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f9e7000f410, timeout=-1, context=0x7f9e70000990) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:4028 #2 g_main_context_iterate (context=context@entry=0x7f9e70000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3729 #3 0x00007f9e8b41c0ec in g_main_context_iteration (context=0x7f9e70000990, may_block=may_block@entry=1) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3795 #4 0x00007f9e917b2b0b in QEventDispatcherGlib::processEvents (this=0x7f9e700008c0, flags=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:419 #5 0x00007f9e9175c7aa in QEventLoop::exec (this=this@entry=0x7f9e7e527da0, flags=..., flags@entry=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qeventloop.cpp:206 #6 0x00007f9e91591fdb in QThread::exec (this=this@entry=0x7f9e935d4420 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/thread/qthread.cpp:500 #7 0x00007f9e93363725 in QDBusConnectionManager::run (this=0x7f9e935d4420 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/dbus/qdbusconnection.cpp:189 #8 0x00007f9e91596cf9 in QThreadPrivate::start (arg=0x7f9e935d4420 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/thread/qthread_unix.cpp:365 #9 0x00007f9e8c19e184 in start_thread (arg=0x7f9e7e528700) at pthread_create.c:312 #10 0x00007f9e90ef537d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 1 (Thread 0x7f9e95288800 (LWP 4772)): [KCrash Handler] #6 0x00007f9e90ee7fdd in poll () at ../sysdeps/unix/syscall-template.S:81 #7 0x00007f9e8b41bfe4 in g_main_context_poll (priority=2147483647, n_fds=8, fds=0x1a9e7c0, timeout=4995, context=0x7f9e78003000) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:4028 #8 g_main_context_iterate (context=context@entry=0x7f9e78003000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3729 #9 0x00007f9e8b41c0ec in g_main_context_iteration (context=0x7f9e78003000, may_block=may_block@entry=1) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3795 #10 0x00007f9e917b2aef in QEventDispatcherGlib::processEvents (this=0x1748f50, flags=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:417 #11 0x00007f9e9175c7aa in QEventLoop::exec (this=this@entry=0x7ffe752a0b10, flags=..., flags@entry=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qeventloop.cpp:206 #12 0x00007f9e9268e63d in QMenu::exec (this=<optimized out>, p=..., action=action@entry=0x0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/widgets/qmenu.cpp:2401 #13 0x00007f9e926cf599 in QToolButtonPrivate::popupTimerDone (this=0x1af9940) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/widgets/qtoolbutton.cpp:787 #14 0x00007f9e9178b3e9 in QMetaObject::activate (sender=sender@entry=0x1aac990, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qobject.cpp:3730 #15 0x00007f9e9178b997 in QMetaObject::activate (sender=sender@entry=0x1aac990, m=m@entry=0x7f9e92bf05e0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qobject.cpp:3595 #16 0x00007f9e9260b110 in QAbstractButton::pressed (this=this@entry=0x1aac990) at .moc/moc_qabstractbutton.cpp:294 #17 0x00007f9e9260b407 in QAbstractButtonPrivate::emitPressed (this=0x1af9940) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/widgets/qabstractbutton.cpp:418 #18 0x00007f9e9260ba75 in QAbstractButton::mousePressEvent (this=this@entry=0x1aac990, e=e@entry=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/widgets/qabstractbutton.cpp:975 #19 0x00007f9e926d02ec in QToolButton::mousePressEvent (this=0x1aac990, e=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/widgets/qtoolbutton.cpp:602 #20 0x00007f9e92555419 in QWidget::event (this=0x1aac990, event=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qwidget.cpp:8747 #21 0x00007f9e9260d7b1 in QAbstractButton::event (this=this@entry=0x1aac990, e=e@entry=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/widgets/qabstractbutton.cpp:959 #22 0x00007f9e926d0569 in QToolButton::event (this=0x1aac990, event=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/widgets/qtoolbutton.cpp:977 #23 0x00007f9e92511cbc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x1aac990, e=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qapplication.cpp:3804 #24 0x00007f9e92517aff in QApplication::notify (this=<optimized out>, receiver=0x1aac990, e=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qapplication.cpp:3277 #25 0x00007f9e9175e8e8 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x1aac990, event=event@entry=0x7ffe752a1260) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qcoreapplication.cpp:1020 #26 0x00007f9e925163a5 in sendEvent (event=<optimized out>, receiver=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:225 #27 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x1aac990, event=event@entry=0x7ffe752a1260, alienWidget=alienWidget@entry=0x1aac990, nativeWidget=0x7ffe752a1c50, buttonDown=buttonDown@entry=0x7f9e92c227d0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qapplication.cpp:2775 #28 0x00007f9e9256efbe in QWidgetWindow::handleMouseEvent (this=this@entry=0x1a65140, event=event@entry=0x7ffe752a1660) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qwidgetwindow.cpp:603 #29 0x00007f9e925717db in QWidgetWindow::event (this=0x1a65140, event=0x7ffe752a1660) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qwidgetwindow.cpp:233 #30 0x00007f9e92511cbc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x1a65140, e=0x7ffe752a1660) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qapplication.cpp:3804 #31 0x00007f9e92516d9f in QApplication::notify (this=0x7ffe752a1c20, receiver=0x1a65140, e=0x7ffe752a1660) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/kernel/qapplication.cpp:3561 #32 0x00007f9e9175e8e8 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x1a65140, event=event@entry=0x7ffe752a1660) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qcoreapplication.cpp:1020 #33 0x00007f9e91cc5fd3 in sendSpontaneousEvent (event=0x7ffe752a1660, receiver=0x1a65140) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228 #34 QGuiApplicationPrivate::processMouseEvent (e=0x2139a50) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/gui/kernel/qguiapplication.cpp:1881 #35 0x00007f9e91cc76c5 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x2139a50) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/gui/kernel/qguiapplication.cpp:1665 #36 0x00007f9e91ca69bb in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:653 #37 0x00007f9e822d72f0 in userEventSourceDispatch (source=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:70 #38 0x00007f9e8b41be04 in g_main_dispatch (context=0x7f9e78003000) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3064 #39 g_main_context_dispatch (context=context@entry=0x7f9e78003000) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3663 #40 0x00007f9e8b41c048 in g_main_context_iterate (context=context@entry=0x7f9e78003000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3734 #41 0x00007f9e8b41c0ec in g_main_context_iteration (context=0x7f9e78003000, may_block=may_block@entry=1) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3795 #42 0x00007f9e917b2aef in QEventDispatcherGlib::processEvents (this=0x1748f50, flags=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:417 #43 0x00007f9e9175c7aa in QEventLoop::exec (this=this@entry=0x7ffe752a19e0, flags=..., flags@entry=...) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/kernel/qeventloop.cpp:206 #44 0x00007f9e92703f5c in QDialog::exec (this=this@entry=0x7ffe752a1c50) at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.6.2/qtbase/src/widgets/dialogs/qdialog.cpp:541 #45 0x000000000040eb4c in main (argc=<optimized out>, argv=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-baseapps/kf5-baseapps-devel/work/kf5-baseapps-5/kdialog/kdialog.cpp:712 -- You are receiving this mail because: You are watching all bug changes.