Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GNOME 44 (Wayland): Context menu on tree items in side bar closes immediately #11576

Closed
uklotzde opened this issue May 22, 2023 · 35 comments
Closed
Labels
bug confirmed regression upstream This bug stems from an upstream issue

Comments

@uklotzde
Copy link
Contributor

uklotzde commented May 22, 2023

Bug Description

Right clicking on any tree item in the side bar has no effect. Update: It actually appears for a split second, but disappears immediately without further interaction.

Opening the context menu with a right click works for tracks in the table view.

Qt 5.15.9 on a single screen.

Version

2.3.5, 2.4, main

OS

Fedora 38 / GNOME 44 on Wayland

Workaround

Start GNOME on Xorg instead of using Wayland as the display server. This bug only seems to affect the XWayland backend.

@uklotzde uklotzde added the bug label May 22, 2023
@uklotzde
Copy link
Contributor Author

uklotzde commented May 22, 2023

The right click itself is received and globalPos contains reasonable values:

debug [Main] SidebarModel::rightClicked QPoint(84,505) QModelIndex(3,0,0x4713b20,SidebarModel(0x4713b20))

@uklotzde uklotzde changed the title GNOME 44: Context menu on tree items in side bar does not open GNOME 44: Context menu on tree items in side bar closes immediately May 22, 2023
@Swiftb0y
Copy link
Member

I can partly confirm the issue. The context menu does open sometimes if you're lucky.

@Swiftb0y Swiftb0y added this to the 2.3.6 milestone May 22, 2023
@uklotzde
Copy link
Contributor Author

uklotzde commented May 22, 2023

I have updated the description. For me it never stays open. And you can barely notice that it actually opens. Sometimes I see it flickering but it never remains open.

This is a huge usability issue. Many features are completely inaccessible now.

@uklotzde
Copy link
Contributor Author

Removing the globalPos argument from QMenu::exec() doesn't work either. Then you only see it flickering in the upper left corner of the screen.

@uklotzde
Copy link
Contributor Author

The situation with Qt 5.15 seems to get worse.

@ronso0
Copy link
Member

ronso0 commented May 22, 2023

One difference between WLibrarySidebar::contextMenuEvent (doesn't work) and WTrackTableView::contextMenuEvent (works)is that in the latter the event is accepted.
Can you test if accpeting the event in the sidebar makes a difference?

@uklotzde
Copy link
Contributor Author

One difference between WLibrarySidebar::contextMenuEvent (doesn't work) and WTrackTableView::contextMenuEvent (works)is that in the latter the event is accepted. Can you test if accpeting the event in the sidebar makes a difference?

Unfortunately, that doesn't make a difference 😞 But the accept() calls are nevertheless missing, also for the column headers that seem to react only when clicking twice sometimes.

@ronso0
Copy link
Member

ronso0 commented May 22, 2023

Does this also occur if the mouse is not moved between press and release?
If no, appearanty this was fixed in Qt6 but not backported to Qt5 :|
https://codereview.qt-project.org/c/qt/qtbase/+/310743/3/src/widgets/widgets/qmenu.cpp

@uklotzde
Copy link
Contributor Author

Does this also occur if the mouse is not moved between press and release? If no, appearanty this was fixed in Qt6 but not backported to Qt5 :| https://codereview.qt-project.org/c/qt/qtbase/+/310743/3/src/widgets/widgets/qmenu.cpp

Not moving the mouse doesn't fix it. I am not able to access any context menus in the side bar tree.

@uklotzde
Copy link
Contributor Author

And even it would be backported it would not arrive before a year or so has passed. This is a shit show.

@uklotzde
Copy link
Contributor Author

This issue also seems to affect Zoom, so probably not Mixxx's fault. Trying to open the user's profile menu in the upper right corner shows a similar behavior recently, i.e. it closes itself immediately and is inaccessible.

@uklotzde uklotzde changed the title GNOME 44: Context menu on tree items in side bar closes immediately GNOME 44 (Wayland): Context menu on tree items in side bar closes immediately May 23, 2023
@ronso0
Copy link
Member

ronso0 commented May 23, 2023

fwiw there was a simular issue on macOS a few years back with the skin settings toggle #9461

@Swiftb0y
Copy link
Member

This issue also seems to affect Zoom, so probably not Mixxx's fault. Trying to open the user's profile menu in the upper right corner shows a similar behavior recently, i.e. it closes itself immediately and is inaccessible.

Fyi the same occurs in VSCode, so yeah, probably not a mixxx issue per se.

@daschuer daschuer added the upstream This bug stems from an upstream issue label May 31, 2023
@daschuer
Copy link
Member

Is there an upstream bug report we can reference?
Is one of you able to single step through the Qt source to hunt down the issue?

@Swiftb0y
Copy link
Member

Fyi the same occurs in VSCode, so yeah, probably not a mixxx issue per se.

Can't reproduce it anymore in VSCode. I can in mixxx though. 😟

@daschuer
Copy link
Member

daschuer commented Aug 5, 2023

What is the situation here? Is the issue still happening?
Can we implemendva band aid?

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 5, 2023

Its still happening and I can reproduce it but I'm not sure where to start debugging.

@daschuer
Copy link
Member

daschuer commented Aug 5, 2023

I am afraid this is a mayor bug. Do you have a personal workaround?

Since we blame Gnome 44, there must be something different in how right clicks are handeled.

Maybe a glitch with touch events around Qt::WA_AcceptTouchEvents.

Maybe we have another workaround that is no longer necessary?

This?

stopPressedUntilClickedTimer();

Is it possible, to set a breakpoint when the menu is closed and investigate the source of the closing event? Maybe in QMenu::~QMenu() and QMenu::hideEvent()

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 5, 2023

I am afraid this is a mayor bug. Do you have a personal workaround?

Not really, it works every 10-20th try, so often I just right click until it works, so the issue is definitely racy. I agree that its a major bug, I just didn't find the time and motivation to look into it yet.

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

So yeah, sometimes the menu closes prematurely by triggering QMenu:hideEvent early.

bt full

Thread 1 "mixxx" hit Breakpoint 1, QMenu::hideEvent (this=0x7fffffffc980) at widgets/qmenu.cpp:2747
2747	{
(gdb) bt full
#0  QMenu::hideEvent(QHideEvent*) (this=0x7fffffffc980) at widgets/qmenu.cpp:2747
        d = <optimized out>
        event = {_vptr.QAccessibleEvent = 0x2, m_type = 4082666656, m_object = 0x10, {m_child = -16032, m_uniqueId = 4294951264}}
#1  0x00007ffff63f3688 in QWidget::event(QEvent*) (this=0x7fffffffc980, event=0x7fffffffc310) at kernel/qwidget.cpp:9045
        d = <optimized out>
#2  0x00007ffff63aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x7fffffffc980, e=0x7fffffffc310)
    at kernel/qapplication.cpp:3640
        consumed = false
        filtered = false
#3  0x00007ffff34b4188 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7fffffffc980, event=0x7fffffffc310)
    at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x7fffffffc980, 0x7fffffffc310, 0x7fffffffc27f}
        d = <optimized out>
        threadData = 0x149e9b0
        scopeLevelCounter = {threadData = 0x149e9b0}
#4  0x00007ffff34b43c2 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>)
    at kernel/qcoreapplication.cpp:1474
#5  0x00007ffff63f4333 in QWidget::event(QEvent*) (this=0x7fffffffc980, event=0x7fffffffc420) at kernel/qwidget.cpp:8944
        hideEvent = {<QEvent> = {_vptr.QEvent = 0x7ffff6018f58 <vtable for QHideEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff3667d80 <qt_meta_stringdata_QEvent>, data = 0x7ffff36677c0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 18, posted = 0, spont = 1, m_accept = 1, reserved = 8191}, <No data fields>}
        widget = 0x7fffffffc980
        wasMinimized = <optimized out>
        d = 0x1ded41d0
#6  0x00007ffff63aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x7fffffffc980, e=0x7fffffffc420)
    at kernel/qapplication.cpp:3640
        consumed = false
        filtered = false
#7  0x00007ffff34b4188 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7fffffffc980, event=0x7fffffffc420)
    at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x7fffffffc980, 0x7fffffffc420, 0x7fffffffc3bf}
        d = <optimized out>
        threadData = 0x149e9b0
        scopeLevelCounter = {threadData = 0x149e9b0}
#8  0x00007ffff34b41d6 in QCoreApplication::forwardEvent(QObject*, QEvent*, QEvent*)
    (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>) at kernel/qcoreapplication.cpp:1079
#9  0x00007ffff6410028 in QWidgetWindow::handleWindowStateChangedEvent(QWindowStateChangeEvent*)
    (this=this@entry=0x14e9c710, event=event@entry=0x7fffffffc5a0) at kernel/qwidgetwindow.cpp:1062
        widgetEvent = {<QEvent> = {_vptr.QEvent = 0x7ffff6018ff8 <vtable for QWindowStateChangeEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff3667d80 <qt_meta_stringdata_QEvent>, data = 0x7ffff36677c0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 105, posted = 0, spont = 1, m_accept = 1, reserved = 0}, ostate = {i = 0}, m_override = false}
        eventState = {i = 0}
        widgetState = {i = <optimized out>}
        windowState = {i = <optimized out>}
#10 0x00007ffff64109a6 in QWidgetWindow::event(QEvent*) (this=0x14e9c710, event=0x7fffffffc5a0) at kernel/qwidgetwindow.cpp:352
#11 0x00007ffff63aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x14e9c710, e=0x7fffffffc5a0)
    at kernel/qapplication.cpp:3640
        consumed = false
        filtered = false
#12 0x00007ffff34b4188 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x14e9c710, event=0x7fffffffc5a0)
    at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x14e9c710, 0x7fffffffc5a0, 0x7fffffffc53f}
        d = <optimized out>
        threadData = 0x149e9b0
        scopeLevelCounter = {threadData = 0x149e9b0}
#13 0x00007ffff34b43c2 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>)
    at kernel/qcoreapplication.cpp:1474
#14 0x00007ffff5b69653 in QGuiApplicationPrivate::processWindowStateChangedEvent(QWindowSystemInterfacePrivate::WindowStateChangedEvent*)
    (wse=0x13822650) at kernel/qguiapplication.cpp:2529
        e = {<QEvent> = {_vptr.QEvent = 0x7ffff6018ff8 <vtable for QWindowStateChangeEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff3667d80 <qt_meta_stringdata_QEvent>, data = 0x7ffff36677c0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 105, posted = 0, spont = 1, m_accept = 1, reserved = 7872}, ostate = {i = 0}, m_override = false}
        window = 0x14e9c710
#15 0x00007ffff5b4acfc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...)
    at kernel/qwindowsysteminterface.cpp:1169
        event = 0x13822650
        nevents = 1
#16 0x00007fffdcd1b4d6 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
        xcbEventSource = <optimized out>
        flags = {i = 36}
#17 0x00007ffff581248c in g_main_dispatch (context=0x7fffd8000ee0) at ../glib/gmain.c:3460
        dispatch = 0x7fffdcd1b4b0 <xcbSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x16be5d0
        begin_time_nsec = 7910144213295
        was_in_call = 2
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x16be5d0
        current = 0x174b140
        i = 1
#18 g_main_context_dispatch (context=0x7fffd8000ee0) at ../glib/gmain.c:4200
#19 0x00007ffff5870648 in g_main_context_iterate.isra.0 (context=0x7fffd8000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = 5
        allocated_nfds = <optimized out>
        fds = <optimized out>
        begin_time_nsec = 7910143059698
#20 0x00007ffff580fb13 in g_main_context_iteration (context=0x7fffd8000ee0, may_block=1) at ../glib/gmain.c:4343
        retval = <optimized out>
#21 0x00007ffff3506729 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x16ac860, flags=...)
    at kernel/qeventdispatcher_glib.cpp:423
--Type <RET> for more, q to quit, c to continue without paging--c
        d = 0x16bd1d0
        canWait = <optimized out>
        savedFlags = {i = 36}
        result = <optimized out>
#22 0x00007ffff34b2b4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffc8b0, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
        d = 0x1e0916f0
        threadData = <optimized out>
        locker = {val = 21796264}
        ref = {d = 0x1e0916f0, locker = @0x7fffffffc828, exceptionCaught = true}
        app = 0x7fffffffd6f0
#23 0x00007ffff6544d2e in QMenuPrivate::exec(QPoint const&, QAction*, std::function<QPoint (QSize const&)>)
    (this=0x1ded41d0, p=..., action=action@entry=0x0, positionFunction=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
        q = <optimized out>
        evtLoop = {<QObject> = {_vptr.QObject = 0x7ffff3765b48 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366ce40 <qt_meta_stringdata_QObject>, data = 0x7ffff366cd20 <qt_meta_data_QObject>, static_metacall = 0x7ffff34e5800 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x1e0916f0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366fde0 <qt_meta_stringdata_Qt>, data = 0x7ffff366cf60 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff375d400 <QObject::staticMetaObject>}, stringdata = 0x7ffff3666c20 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff3666bc0 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff34b2750 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
#24 0x00007ffff6544e56 in QMenu::exec(QPoint const&, QAction*) (this=this@entry=0x7fffffffc980, p=..., action=action@entry=0x0)
    at widgets/qmenu.cpp:2687
        d = <optimized out>
#25 0x000000000083da17 in PlaylistFeature::onRightClickChild(QPoint const&, QModelIndex const&)
    (this=0x6d340a0, globalPos=..., index=<optimized out>) at /home/swiftb0y/Sourcerepositories/mixxx/src/library/trackset/playlistfeature.cpp:95
        playlistId = <optimized out>
        locked = <optimized out>
        menu = {<QWidget> = {<QObject> = {_vptr.QObject = 0x7ffff68dc440 <vtable for QMenu+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366ce40 <qt_meta_stringdata_QObject>, data = 0x7ffff366cd20 <qt_meta_data_QObject>, static_metacall = 0x7ffff34e5800 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x1ded41d0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366fde0 <qt_meta_stringdata_Qt>, data = 0x7ffff366cf60 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, <QPaintDevice> = {_vptr.QPaintDevice = 0x7ffff68dc5f0 <vtable for QMenu+448>, painters = 0, reserved = 0x0}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff375d400 <QObject::staticMetaObject>}, stringdata = 0x7ffff678bb40 <qt_meta_stringdata_QWidget>, data = 0x7ffff678b460 <qt_meta_data_QWidget>, static_metacall = 0x7ffff63f1e00 <QWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, data = 0x1ded42f0}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff68d07c0 <QWidget::staticMetaObject>}, stringdata = 0x7ffff67b0900 <qt_meta_stringdata_QMenu>, data = 0x7ffff67b07a0 <qt_meta_data_QMenu>, static_metacall = 0x7ffff654adf0 <QMenu::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
#26 0x00007ffff34e8461 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffcad0, r=<optimized out>, this=0x14e16960)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
        receiver = <optimized out>
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x6ce36b0, sender = 0x14dfcf70, signal = 16}
        c = 0x14e18d90
        connections = {d = 0x14dfe170}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 13
        signalVector = 0x1365e9a0
        currentThreadId = 0x7fffea492280
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#27 doActivate<false>(QObject*, int, void**) (sender=0x14dfcf70, signal_index=16, argv=0x7fffffffcad0) at kernel/qobject.cpp:3925
        receiver = <optimized out>
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x6ce36b0, sender = 0x14dfcf70, signal = 16}
        c = 0x14e18d90
        connections = {d = 0x14dfe170}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 13
        signalVector = 0x1365e9a0
        currentThreadId = 0x7fffea492280
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#28 0x00007ffff34e3387 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x14dfcf70, m=m@entry=0x1424480 <WLibrarySidebar::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffcad0) at kernel/qobject.cpp:3985
#29 0x000000000097837c in WLibrarySidebar::rightClicked(QPoint const&, QModelIndex const&) (_t2=..., _t1=..., this=0x14dfcf70)
    at /home/swiftb0y/Sourcerepositories/mixxx/cbuild/mixxx-lib_autogen/include/moc_wlibrarysidebar.cpp:195
        _a = {0x0, 0x7fffffffcf78, 0x7fffffffcab0}
        clickedIndex = {r = 0, c = 0, i = 114770768, m = 0x6ce36b0}
#30 WLibrarySidebar::contextMenuEvent(QContextMenuEvent*) (this=0x14dfcf70, event=0x7fffffffcf50)
    at /home/swiftb0y/Sourcerepositories/mixxx/src/widget/wlibrarysidebar.cpp:44
        clickedIndex = {r = 0, c = 0, i = 114770768, m = 0x6ce36b0}
#31 0x00007ffff63f3688 in QWidget::event(QEvent*) (this=this@entry=0x14dfcf70, event=event@entry=0x7fffffffcf50) at kernel/qwidget.cpp:9045
        d = <optimized out>
#32 0x00007ffff64a4bc7 in QFrame::event(QEvent*) (this=0x14dfcf70, e=0x7fffffffcf50) at widgets/qframe.cpp:550
        result = <optimized out>
#33 0x00007ffff34b3f36 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
    (receiver=receiver@entry=0x14e0b870, event=event@entry=0x7fffffffcf50) at kernel/qcoreapplication.cpp:1190
        obj = <optimized out>
        i = 3
#34 0x00007ffff63aeb65 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=this@entry=0x1515790, receiver=receiver@entry=0x14e0b870, e=e@entry=0x7fffffffcf50) at kernel/qapplication.cpp:3634
        consumed = false
        filtered = false
#35 0x00007ffff63b7998 in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x14e0b870, e=0x7fffffffcf50)
    at kernel/qapplication.cpp:3246
        ce = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x7ffff6018db8 <vtable for QContextMenuEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff3667d80 <qt_meta_stringdata_QEvent>, data = 0x7ffff36677c0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 82, posted = 0, spont = 1, m_accept = 1, reserved = 668}, modState = {i = 0}, ts = 0}, p = {xp = 103, yp = 96}, gp = {xp = 106, yp = 2038}, reas = 0}
        w = 0x14e0b870
        context = 0x7fffffffcf50
        relpos = {xp = 103, yp = 96}
        eventAccepted = <optimized out>
        d = 0x1515790
        res = false
#36 0x00007ffff34b4188 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x14e0b870, event=0x7fffffffcf50)
    at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x14e0b870, 0x7fffffffcf50, 0x7fffffffce3f}
        d = <optimized out>
        threadData = 0x149e9b0
        scopeLevelCounter = {threadData = 0x149e9b0}
#37 0x00007ffff34b41d6 in QCoreApplication::forwardEvent(QObject*, QEvent*, QEvent*)
    (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>) at kernel/qcoreapplication.cpp:1079
#38 0x00007ffff640d965 in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=this@entry=0x19db5a0, event=event@entry=0x7fffffffd270)
    at kernel/qwidgetwindow.cpp:692
        e = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x7ffff6018db8 <vtable for QContextMenuEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff3667d80 <qt_meta_stringdata_QEvent>, data = 0x7ffff36677c0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 82, posted = 0, spont = 1, m_accept = 1, reserved = 42}, modState = {i = 0}, ts = 0}, p = {xp = 103, yp = 96}, gp = {xp = 106, yp = 2038}, reas = 0}
        contextMenuTrigger = QEvent::MouseButtonPress
        widget = <optimized out>
        mapped = {xp = 103, yp = 96}
        initialPress = <optimized out>
        receiver = 0x14e0b870
#39 0x00007ffff641072f in QWidgetWindow::event(QEvent*) (this=0x19db5a0, event=0x7fffffffd270) at kernel/qwidgetwindow.cpp:300
#40 0x00007ffff63aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x19db5a0, e=0x7fffffffd270)
    at kernel/qapplication.cpp:3640
        consumed = false
        filtered = false
#41 0x00007ffff34b4188 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x19db5a0, event=0x7fffffffd270)
    at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x19db5a0, 0x7fffffffd270, 0x7fffffffd0ff}
        d = <optimized out>
        threadData = 0x149e9b0
        scopeLevelCounter = {threadData = 0x149e9b0}
#42 0x00007ffff34b43c2 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>)
    at kernel/qcoreapplication.cpp:1474
#43 0x00007ffff5b6cc6b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0x136f8630)
    at kernel/qguiapplication.cpp:2278
        type = QEvent::MouseButtonPress
        button = Qt::RightButton
        window = 0x19db5a0
        positionChanged = <optimized out>
        mouseMove = <optimized out>
        mousePress = <optimized out>
        localPoint = {xp = 106, yp = 889}
        globalPoint = {xp = 106, yp = 2038}
        doubleClick = false
        ev = {<QInputEvent> = {<QEvent> = {_vptr.QEvent = 0x7ffff6018c38 <vtable for QMouseEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff3667d80 <qt_meta_stringdata_QEvent>, data = 0x7ffff36677c0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 2, posted = 0, spont = 1, m_accept = 1, reserved = 8191}, modState = {i = 0}, ts = 7910127}, l = {xp = 106, yp = 889}, w = {xp = 106, yp = 889}, s = {xp = 106, yp = 2038}, b = Qt::RightButton, mouseState = {i = 2}, caps = 0, velocity = {v = {0, 0}}}
#44 0x00007ffff5b4acfc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...)
    at kernel/qwindowsysteminterface.cpp:1169
        event = 0x136f8630
        nevents = 1
#45 0x00007fffdcd1b4d6 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
        xcbEventSource = <optimized out>
        flags = {i = 36}
#46 0x00007ffff581248c in g_main_dispatch (context=0x7fffd8000ee0) at ../glib/gmain.c:3460
        dispatch = 0x7fffdcd1b4b0 <xcbSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x0
        begin_time_nsec = 7910127621189
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x16be5d0
        current = 0x174b140
        i = 1
#47 g_main_context_dispatch (context=0x7fffd8000ee0) at ../glib/gmain.c:4200
#48 0x00007ffff5870648 in g_main_context_iterate.isra.0 (context=0x7fffd8000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
        max_priority = 2147483647
        timeout = 57
        some_ready = 1
        nfds = 5
        allocated_nfds = <optimized out>
        fds = <optimized out>
        begin_time_nsec = 7910123525243
#49 0x00007ffff580fb13 in g_main_context_iteration (context=0x7fffd8000ee0, may_block=1) at ../glib/gmain.c:4343
        retval = <optimized out>
#50 0x00007ffff3506729 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x16ac860, flags=...)
    at kernel/qeventdispatcher_glib.cpp:423
        d = 0x16bd1d0
        canWait = <optimized out>
        savedFlags = {i = 0}
        result = <optimized out>
#51 0x00007ffff34b2b4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd630, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
        d = 0x6e48cf0
        threadData = <optimized out>
        locker = {val = 21796264}
        ref = {d = 0x6e48cf0, locker = @0x7fffffffd5b8, exceptionCaught = true}
        app = 0x7fffffffd6f0
#52 0x00007ffff34baddb in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
        threadData = 0x149e9b0
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff3765b48 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366ce40 <qt_meta_stringdata_QObject>, data = 0x7ffff366cd20 <qt_meta_data_QObject>, static_metacall = 0x7ffff34e5800 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x6e48cf0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366fde0 <qt_meta_stringdata_Qt>, data = 0x7ffff366cf60 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff375d400 <QObject::staticMetaObject>}, stringdata = 0x7ffff3666c20 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff3666bc0 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff34b2750 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#53 0x00007ffff5b60edd in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1863
#54 0x00007ffff63aeae9 in QApplication::exec() () at kernel/qapplication.cpp:2832
#55 0x000000000058c63b in (anonymous namespace)::runMixxx (args=<optimized out>, pApp=0x7fffffffd6f0)
    at /home/swiftb0y/Sourcerepositories/mixxx/src/main.cpp:82
        mainWindow = {<QMainWindow> = {<QWidget> = {<QObject> = {_vptr.QObject = 0x1413650 <vtable for MixxxMainWindow+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366ce40 <qt_meta_stringdata_QObject>, data = 0x7ffff366cd20 <qt_meta_data_QObject>, static_metacall = 0x7ffff34e5800 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x172b6c0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366fde0 <qt_meta_stringdata_Qt>, data = 0x7ffff366cf60 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, <QPaintDevice> = {_vptr.QPaintDevice = 0x1413808 <vtable for MixxxMainWindow+456>, painters = 0, reserved = 0x0}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff375d400 <QObject::staticMetaObject>}, stringdata = 0x7ffff678bb40 <qt_meta_stringdata_QWidget>, data = 0x7ffff678b460 <qt_meta_data_QWidget>, static_metacall = 0x7ffff63f1e00 <QWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, data = 0x172b7e0}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff68d07c0 <QWidget::staticMetaObject>}, stringdata = 0x7ffff67adc60 <qt_meta_stringdata_QMainWindow>, data = 0x7ffff67ada60 <qt_meta_data_QMainWindow>, static_metacall = 0x7ffff6512fa0 <QMainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x7ffff68da530 <qt_meta_extradata_QMainWindow>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff68da500 <QMainWindow::staticMetaObject>}, stringdata = 0x10c3960 <qt_meta_stringdata_MixxxMainWindow>, data = 0x10c3700 <qt_meta_data_MixxxMainWindow>, static_metacall = 0x684640 <MixxxMainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_pCoreServices = std::shared_ptr<mixxx::CoreServices> (use count 2, weak count 0) = {get() = 0x1914c80}, m_pCentralWidget = 0x1202c7d0, m_pLaunchImage = 0x0, m_pSkinLoader = std::shared_ptr<mixxx::skin::SkinLoader> (use count 2, weak count 0) = {get() = 0x1a38520}, m_pGuiTick = 0x1a13b60, m_pVisualsManager = 0x17ada30, m_pMenuBar = {m_ptr = 0x1782bf0}, m_supportsGlobalMenuBar = false, m_pDeveloperToolsDlg = 0x0, m_pPrefDlg = 0x6ce0070, m_pKeywheel = {m_ptr = 0x0}, m_pLibraryExporter = std::unique_ptr<mixxx::LibraryExporter> = {get() = 0x6c75fe0}, m_toolTipsCfg = mixxx::TooltipsPreference::TOOLTIPS_ON, m_inhibitScreensaver = (mixxx::ScreenSaverPreference::PREVENT_ON | mixxx::ScreenSaverPreference::PREVENT_ON_PLAY | unknown: 0x7ffc), m_skinCreatedControls = QSet<ControlObject *> (size = 38) = {[0] = 0x120b8ad0, [1] = 0x120b4e10, [2] = 0x12059f80, [3] = 0x120b5df0, [4] = 0x1205d390, [5] = 0x197973c0, [6] = 0x120b3e30, [7] = 0x1977b480, [8] = 0x1203f830, [9] = 0x1979b740, [10] = 0x120b48b0, [11] = 0x120bb5f0, [12] = 0x120b7ed0, [13] = 0x12faecd0, [14] = 0x120b68c0, [15] = 0x120b83e0, [16] = 0x120ba570, [17] = 0x12a96e00, [18] = 0x120b53b0, [19] = 0x120b58e0, [20] = 0x120b9010, [21] = 0x120b7970, [22] = 0x120b9ae0, [23] = 0x120bab40, [24] = 0x120ba020, [25] = 0x120bc5b0, [26] = 0x120bc070, [27] = 0x120b43a0, [28] = 0x1205cfc0, [29] = 0x120b63b0, [30] = 0x16a04a70, [31] = 0x120b6e30, [32] = 0x120b73a0, [33] = 0x12fb2060, [34] = 0x120bb0d0, [35] = 0x120bbb60, [36] = 0x120b9570, [37] = 0x12fa7c10}}
        pCoreServices = std::shared_ptr<mixxx::CoreServices> (use count 2, weak count 0) = {get() = 0x1914c80}
        exitCode = <optimized out>
        console = {<No data fields>}
        args = <optimized out>
        app = {<QApplication> = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x14127d8 <vtable for MixxxApplication+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366ce40 <qt_meta_stringdata_QObject>, data = 0x7ffff366cd20 <qt_meta_data_QObject>, static_metacall = 0x7ffff34e5800 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x1515790}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366fde0 <qt_meta_stringdata_Qt>, data = 0x7ffff366cf60 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff375d400 <QObject::staticMetaObject>}, stringdata = 0x7ffff3667300 <qt_meta_stringdata_QCoreApplication>, data = 0x7ffff36671e0 <qt_meta_data_QCoreApplication>, static_metacall = 0x7ffff34b5a90 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7fffffffd6f0}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff3765ce0 <QCoreApplication::staticMetaObject>}, stringdata = 0x7ffff5f33220 <qt_meta_stringdata_QGuiApplication>, data = 0x7ffff5f32fa0 <qt_meta_data_QGuiApplication>, static_metacall = 0x7ffff5b61f40 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff6018320 <QGuiApplication::staticMetaObject>}, stringdata = 0x7ffff67878c0 <qt_meta_stringdata_QApplication>, data = 0x7ffff6787740 <qt_meta_data_QApplication>, static_metacall = 0x7ffff63b28b0 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff68cf420 <QApplication::staticMetaObject>}, stringdata = 0x10b5880 <qt_meta_stringdata_MixxxApplication>, data = 0x10b5840 <qt_meta_data_MixxxApplication>, static_metacall = 0x5ec050 <MixxxApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_rightPressedButtons = 0, m_pTouchShift = 0x0}
        exitCode = <optimized out>
        __PRETTY_FUNCTION__ = "int main(int, char**)"
#56 main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/swiftb0y/Sourcerepositories/mixxx/src/main.cpp:213
        console = {<No data fields>}
        args = <optimized out>
        app = {<QApplication> = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x14127d8 <vtable for MixxxApplication+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366ce40 <qt_meta_stringdata_QObject>, data = 0x7ffff366cd20 <qt_meta_data_QObject>, static_metacall = 0x7ffff34e5800 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x1515790}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff366fde0 <qt_meta_stringdata_Qt>, data = 0x7ffff366cf60 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff375d400 <QObject::staticMetaObject>}, stringdata = 0x7ffff3667300 <qt_meta_stringdata_QCoreApplication>, data = 0x7ffff36671e0 <qt_meta_data_QCoreApplication>, static_metacall = 0x7ffff34b5a90 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7fffffffd6f0}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff3765ce0 <QCoreApplication::staticMetaObject>}, stringdata = 0x7ffff5f33220 <qt_meta_stringdata_QGuiApplication>, data = 0x7ffff5f32fa0 <qt_meta_data_QGuiApplication>, static_metacall = 0x7ffff5b61f40 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff6018320 <QGuiApplication::staticMetaObject>}, stringdata = 0x7ffff67878c0 <qt_meta_stringdata_QApplication>, data = 0x7ffff6787740 <qt_meta_data_QApplication>, static_metacall = 0x7ffff63b28b0 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff68cf420 <QApplication::staticMetaObject>}, stringdata = 0x10b5880 <qt_meta_stringdata_MixxxApplication>, data = 0x10b5840 <qt_meta_data_MixxxApplication>, static_metacall = 0x5ec050 <MixxxApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_rightPressedButtons = 0, m_pTouchShift = 0x0}
        exitCode = <optimized out>
        __PRETTY_FUNCTION__ = "int main(int, char**)"

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

Interestingly, triggering QMenu::hideEvent on other context menus (such as the one spawned on tracks) still triggers a hideEvent "early" but it doesn't cause the menu to be hidden, it will only get hidden after a second hideEvent when you actually move the mouse away from the menu. That second hideEvent does not occur with the sidebar context menu.

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

Soo, I can reproduce the problem with a 60 line minimal demo. I also can't reproduce the issue when we're omitting -platform xcb (the new all-shaders allow us that now without any noticable regressions as far as I can tell). So I see two options:

  1. file the issue upstream with the example, question is: what upstream Qt or GNOME (what part of GNOME?)
  2. omit the explicit specification and fall back to Qt's default (I assume wayland on XWayland desktops?)

Just doing 1. will probably take a lot of time to get fixed. Just 2. is a little risky this late into the beta period. I propose to report upstream and switch to wayland in the meantime, reverting if we get reports of regressions. What do you think?

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

Caveat for 2. is that it obviously would leave 2.3 in a broken state since it can only be applied to 2.4

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

Caveat for 1. is that the problem doesn't seem to occur under Qt6, so it probably doesn't make much sense to report to Qt.

@ronso0
Copy link
Member

ronso0 commented Aug 7, 2023

Are you sure this is unrelated to submenus? (tracks view context menu)

How does the track menu in decks perform?
I think the menus are triggered differently in different places, mousePressEvent vs ContextMenuEvent.

@daschuer
Copy link
Member

daschuer commented Aug 7, 2023

Why not report to both with a reference to each other?

Unfortunately the back trace does not directly reveal a bug. Do you have an die how the first signal is ignored on the working config? Would it be a workaround to ignore the first signal in a QMenu child class?

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

Are you sure this is unrelated to submenus? (tracks view context menu)

I didn't look into the submenus. I just compared the context menu of the sidebar with the context menu of a track.

How does the track menu in decks perform?

as expected from a UI perspective, but looking at the triggered breakpoints, the double hideEvent in which the first/premature one is ignored is super weird.

I think the menus are triggered differently in different places, mousePressEvent vs ContextMenuEvent.

Very likely, the stacktrace of the track menu call is only 26 frames deep while the buggy sidebar one is double that. To me it almost looks like there is a nested event loop running, but I don't know enough about Qt internals to judge really whats going on here. See the bt full stacktrace I posted earlier.

Unfortunately the back trace does not directly reveal a bug. Do you have an die how the first signal is ignored on the working config? Would it be a workaround to ignore the first signal in a QMenu child class?

No idea, that could work but I doubt it would work for long. There is definitely something weird going on under XWayland with -platform xcb.

Doing the same inspection under Xorg works as expected (only a single hideEvent at the correct time).

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

Why not report to both with a reference to each other?

Sure, where should I report to in gnome, mutter?

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

Found something very similar upstream: https://gitlab.gnome.org/GNOME/mutter/-/issues/2886

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 7, 2023

https://gitlab.gnome.org/GNOME/mutter/-/issues/2949
https://bugreports.qt.io/browse/QTBUG-115848

lets see and wait.

@daschuer
Copy link
Member

daschuer commented Aug 9, 2023

Can we recommend QT_QPA_PLATFORM=wayland as workaround and continue with the 2.3.6 release?

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 9, 2023

yes, but that only applies to 2.4. We must stick to xcb for 2.3, otherwise the waveforms will be broken.

@daschuer
Copy link
Member

daschuer commented Aug 9, 2023

Ok, than it is kind of good news to have an 2.4 soon.
Can we move this to the 2.4.1 milestone than?

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 9, 2023

Yes, I think thats a good decision.

@uklotzde
Copy link
Contributor Author

Does no longer occur. Probably a Qt5 issue on Wayland that won't be fixed.

@daschuer daschuer removed this from the 2.4.1 milestone Feb 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug confirmed regression upstream This bug stems from an upstream issue
Projects
None yet
Development

No branches or pull requests

4 participants