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.

Reply via email to