make software cursors work per output
-
Developer
I believe this causes a crash in Wayland when switching outputs in a laptop (internal panel -> external screen):
(gdb) bt #0 KWin::DrmPipeline::moveCursor(QPoint) (pos=..., this=0x557836fd37f0) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/backends/drm/drm_pipeline.cpp:374 #1 KWin::DrmOutput::moveCursor() (this=0x557836fdeb80) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/backends/drm/drm_output.cpp:164 #2 KWin::DrmOutput::moveCursor() (this=0x557836fdeb80) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/backends/drm/drm_output.cpp:156 #3 0x00007f8ede437393 in () at /lib64/libQt5Core.so.5 #4 0x00007f8ee06799b7 in KWin::Cursors::positionChanged(KWin::Cursor*, QPoint const&) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/build/src/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:360 #5 0x00007f8ede437393 in () at /lib64/libQt5Core.so.5 #6 0x00007f8ee0679822 in KWin::Cursor::posChanged(QPoint const&) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/build/src/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:192 #7 0x00007f8ee074f890 in KWin::InputRedirectionCursor::slotPosChanged(QPointF const&) (this=0x55783706af60, pos=...) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/pointer_input.cpp:1447 #8 0x00007f8ede437393 in () at /lib64/libQt5Core.so.5 #9 0x00007f8ee067a255 in KWin::InputRedirection::globalPointerChanged(QPointF const&) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/build/src/kwin_autogen/EWIEGA46WW/moc_input.cpp:317 #10 0x00007f8ee074eef8 in KWin::PointerInputRedirection::updatePosition(QPointF const&) (this=0x557836edcdd0, pos=<optimized out>) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/input.h:500 #11 0x00007f8ee0748733 in KWin::PointerInputRedirection::processMotionInternal(QPointF const&, QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::InputDevice*) (this=0x557836edcdd0, pos=..., delta=..., deltaNonAccelerated=..., time=102146, timeUsec=102146375, device=0x5578370aa300) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/pointer_input.cpp:269 #12 0x00007f8ee0748e00 in KWin::PointerInputRedirection::processMotion(QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::InputDevice*) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/pointer_input.cpp:254 #13 0x00007f8ede437393 in () at /lib64/libQt5Core.so.5 #14 0x00007f8ee067a9b9 in KWin::InputDevice::pointerMotion(QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::InputDevice*) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>, _t4=<optimized out>, _t5=<optimized out>) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/build/src/kwin_autogen/EWIEGA46WW/moc_inputdevice.cpp:677 #15 0x00007f8ee081d503 in KWin::LibInput::Connection::processEvents() (this=0x55783705d6c0) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/backends/libinput/connection.cpp:349 #16 0x00007f8ede42d33e in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5 #17 0x00007f8edeff9a7f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #18 0x00007f8ede400d2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #19 0x00007f8ede403d77 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5 #20 0x00007f8ede45572a in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #21 0x0000557835d199cd in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63 #22 0x00007f8ede3ff72b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #23 0x00007f8ede407a10 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5 #24 0x0000557835c2b135 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin5-5.23.80git.20211229T151140~84690a0de6-ku.78.1.x86_64/src/main_wayland.cpp:737
-
mentioned in commit d18e631d
-
mentioned in merge request !1847 (merged)
Please register or sign in to comment