Bug 515763

Summary: Capture Rectangular Region shortcut crashes Spectacle
Product: [Applications] Spectacle Reporter: Akseli Lahtinen <akselmo>
Component: GeneralAssignee: Noah Davis <noahadvs>
Status: RESOLVED FIXED    
Severity: crash CC: abdulazizbdofficial, aleixpol, kde, nate
Priority: VHI Keywords: drkonqi, regression
Version First Reported In: 6.6.80   
Target Milestone: ---   
Platform: KDE Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Akseli Lahtinen 2026-02-09 10:56:27 UTC
Application: spectacle (6.6.80)

ApplicationNotResponding [ANR]: false
Qt Version: 6.10.2
Frameworks Version: 6.24.0
Operating System: Linux 6.18.7-zen1-1-zen x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 6.6.80 [CoredumpBackend]

-- Information about the crash:
I can open spectacle just fine by opening it from KRunner, but
using the "Capture Rectangular Region" shortcut crashes 
the application completely.

The crash can be reproduced every time.

-- Backtrace:
Application: Spectacle (spectacle), signal: Aborted


warning: Can't open file /share/mime/mime.cache during file-backed mapping note processing

warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /share/qt6/translations/qt_en.qm during file-backed mapping note processing

warning: Can't open file /share/locale/en/LC_MESSAGES/kwidgetsaddons6_qt.qm during file-backed mapping note processing

warning: Can't open file /share/locale/en/LC_MESSAGES/kcoreaddons6_qt.qm during file-backed mapping note processing

warning: Can't open file /share/locale/en/LC_MESSAGES/kjobwidgets6_qt.qm during file-backed mapping note processing
[New LWP 80364]
[New LWP 80368]
[New LWP 80365]
[New LWP 80366]
[New LWP 80367]
[New LWP 80369]
[New LWP 80370]
[New LWP 80372]
[New LWP 80373]
[New LWP 80371]
[New LWP 80382]
[New LWP 80381]
[New LWP 80374]
[New LWP 80385]
[New LWP 80384]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/spectacle --dbus'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7f1ec8657780 (LWP 80364))]
Using eu-unstrip to resolve modules.
add symbol table from file "/usr/lib/libc.so.6"
add symbol table from file "/usr/lib/libKF6Crash.so.6"
add symbol table from file "/usr/lib/libstdc++.so.6"
add symbol table from file "/bin/spectacle"
add symbol table from file "/usr/lib/libQt6Qml.so.6"
add symbol table from file "/usr/lib/libQt6Quick.so.6"
add symbol table from file "/usr/lib/libQt6Core.so.6"
add symbol table from file "/usr/lib/libQt6Widgets.so.6"
add symbol table from file "/usr/lib/libglib-2.0.so.0"
add symbol table from file "/usr/lib/libgallium-25.3.4-arch1.1.so"
add symbol table from file "/usr/lib/libQt6DBus.so.6"
add symbol table from file "/usr/lib/libQt6WaylandClient.so.6"
add symbol table from file "/usr/lib/libwayland-client.so.0"
add symbol table from file "/usr/lib/libKF6GuiAddons.so.6"
[Current thread is 15 (Thread 0x7f1ea0b226c0 (LWP 80384))]

Thread 15 (Thread 0x7f1ea0b226c0 (LWP 80384)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bfa0a8 in __pthread_cond_wait_common (cond=0x562b7f773d08, mutex=0x562b7f773ce0, clockid=<optimized out>, abstime=0x7f1ea0b20cd0) at pthread_cond_wait.c:421
#5  ___pthread_cond_timedwait64 (cond=0x562b7f773d08, mutex=0x562b7f773ce0, abstime=0x7f1ea0b20cd0) at pthread_cond_wait.c:478
#6  0x00007f1ee344a2a5 in QWaitConditionPrivate::wait_relative (this=0x562b7f773ce0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:58
#7  QWaitConditionPrivate::wait (this=0x562b7f773ce0, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:66
#8  QWaitCondition::wait (this=<optimized out>, mutex=0x562b7f7e0638, deadline=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:146
#9  0x00007f1ee33a5189 in QThreadPoolThread::run (this=0x562b7f774090) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthreadpool.cpp:120
#10 0x00007f1ee3445c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#11 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#12 QThreadPrivate::start (arg=0x562b7f774090) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#13 0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#14 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 14 (Thread 0x7f1ea03216c0 (LWP 80385)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:49
#2  0x00007f1ee2bf71b4 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:75
#3  0x00007f1ee2c71a36 in __GI_ppoll (fds=fds@entry=0x7f1e88001420, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f1eddad4784 in ppoll (__fds=0x7f1e88001420, __nfds=1, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f1e88000d80, timeout_usec=<optimized out>, fds=0x7f1e88001420, n_fds=1) at ../glib/glib/gmain.c:4811
#6  g_main_context_iterate_unlocked (context=context@entry=0x7f1e88000d80, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4485
#7  0x00007f1eddad4865 in g_main_context_iteration (context=0x7f1e88000d80, may_block=1) at ../glib/glib/gmain.c:4556
#8  0x00007f1ee3563cb2 in QEventDispatcherGlib::processEvents (this=0x7f1e88000c60, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#9  0x00007f1ee328acf6 in QEventLoop::processEvents (this=0x7f1ea031fd80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#10 QEventLoop::exec (this=0x7f1ea031fd80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#11 0x00007f1ee33a677e in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:672
#12 0x00007f1ee3445c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#13 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#14 QThreadPrivate::start (arg=0x562b7f68a420) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#15 0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#16 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 13 (Thread 0x7f1eb57fa6c0 (LWP 80374)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bf9e9e in __pthread_cond_wait_common (cond=0x562b7f540780, mutex=0x562b7f540750, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#5  ___pthread_cond_wait (cond=0x562b7f540780, mutex=0x562b7f540750) at pthread_cond_wait.c:453
#6  0x00007f1ebd3ddfae in cnd_wait () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:112
#7  0x00007f1ebd39337d in util_queue_thread_func () at ../mesa-25.3.4/src/util/u_queue.c:275
#8  0x00007f1ebd3ddedd in impl_thrd_routine () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:43
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 12 (Thread 0x7f1eb4ff96c0 (LWP 80381)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:49
#2  0x00007f1ee2bf71b4 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:75
#3  0x00007f1ee2c71a36 in __GI_ppoll (fds=fds@entry=0x7f1eb4ff7cd0, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f1ee8bc3aa6 in ppoll (__fds=0x7f1eb4ff7cd0, __nfds=1, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  wl_display_poll (display=display@entry=0x562b7f0b1ff0, events=events@entry=1, timeout=timeout@entry=0x0) at ../wayland-1.24.0/src/wayland-client.c:2006
#6  0x00007f1ee8bc8f12 in wl_display_dispatch_queue_timeout (display=0x562b7f0b1ff0, queue=0x562b7f7b52b0, timeout=timeout@entry=0x0) at ../wayland-1.24.0/src/wayland-client.c:2086
#7  0x00007f1ee8bc9010 in wl_display_dispatch_queue (display=<optimized out>, queue=<optimized out>) at ../wayland-1.24.0/src/wayland-client.c:2163
#8  0x00007f1ee679da68 in ClipboardThread::run (this=0x562b7f971580) at /usr/src/debug/kde-banana-kguiaddons-git/kguiaddons/src/systemclipboard/waylandclipboard.cpp:557
#9  0x00007f1ee3445c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#11 QThreadPrivate::start (arg=0x562b7f971580) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#12 0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#13 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 11 (Thread 0x7f1ea13236c0 (LWP 80382)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:49
#2  0x00007f1ee2bf71b4 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:75
#3  0x00007f1ee2c71a36 in __GI_ppoll (fds=fds@entry=0x7f1e90001420, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f1eddad4784 in ppoll (__fds=0x7f1e90001420, __nfds=1, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f1e90000d00, timeout_usec=<optimized out>, fds=0x7f1e90001420, n_fds=1) at ../glib/glib/gmain.c:4811
#6  g_main_context_iterate_unlocked (context=context@entry=0x7f1e90000d00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4485
#7  0x00007f1eddad4865 in g_main_context_iteration (context=0x7f1e90000d00, may_block=1) at ../glib/glib/gmain.c:4556
#8  0x00007f1ee3563cb2 in QEventDispatcherGlib::processEvents (this=0x7f1e90000be0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#9  0x00007f1ee328acf6 in QEventLoop::processEvents (this=0x7f1ea1321d80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#10 QEventLoop::exec (this=0x7f1ea1321d80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#11 0x00007f1ee33a677e in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:672
#12 0x00007f1ee3445c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#13 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#14 QThreadPrivate::start (arg=0x562b7f971f10) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#15 0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#16 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 10 (Thread 0x7f1eb6ffd6c0 (LWP 80371)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bf9e9e in __pthread_cond_wait_common (cond=0x562b7f36a9a8, mutex=0x562b7f36a978, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#5  ___pthread_cond_wait (cond=0x562b7f36a9a8, mutex=0x562b7f36a978) at pthread_cond_wait.c:453
#6  0x00007f1ebd3ddfae in cnd_wait () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:112
#7  0x00007f1ebd39337d in util_queue_thread_func () at ../mesa-25.3.4/src/util/u_queue.c:275
#8  0x00007f1ebd3ddedd in impl_thrd_routine () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:43
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 9 (Thread 0x7f1eb5ffb6c0 (LWP 80373)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bf9e9e in __pthread_cond_wait_common (cond=0x562b7f4fb520, mutex=0x562b7f4fb4f0, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#5  ___pthread_cond_wait (cond=0x562b7f4fb520, mutex=0x562b7f4fb4f0) at pthread_cond_wait.c:453
#6  0x00007f1ebd3ddfae in cnd_wait () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:112
#7  0x00007f1ebd39337d in util_queue_thread_func () at ../mesa-25.3.4/src/util/u_queue.c:275
#8  0x00007f1ebd3ddedd in impl_thrd_routine () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:43
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 8 (Thread 0x7f1eb67fc6c0 (LWP 80372)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bf9e9e in __pthread_cond_wait_common (cond=0x562b7f407c10, mutex=0x562b7f407be0, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#5  ___pthread_cond_wait (cond=0x562b7f407c10, mutex=0x562b7f407be0) at pthread_cond_wait.c:453
#6  0x00007f1ebd3ddfae in cnd_wait () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:112
#7  0x00007f1ebd39337d in util_queue_thread_func () at ../mesa-25.3.4/src/util/u_queue.c:275
#8  0x00007f1ebd3ddedd in impl_thrd_routine () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:43
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 7 (Thread 0x7f1eb77fe6c0 (LWP 80370)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bf9e9e in __pthread_cond_wait_common (cond=0x562b7f36a7f8, mutex=0x562b7f36a7c8, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#5  ___pthread_cond_wait (cond=0x562b7f36a7f8, mutex=0x562b7f36a7c8) at pthread_cond_wait.c:453
#6  0x00007f1ebd3ddfae in cnd_wait () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:112
#7  0x00007f1ebd39337d in util_queue_thread_func () at ../mesa-25.3.4/src/util/u_queue.c:275
#8  0x00007f1ebd3ddedd in impl_thrd_routine () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:43
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 6 (Thread 0x7f1eb7fff6c0 (LWP 80369)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bf9e9e in __pthread_cond_wait_common (cond=0x562b7f3f6ed0, mutex=0x562b7f3f6ea0, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#5  ___pthread_cond_wait (cond=0x562b7f3f6ed0, mutex=0x562b7f3f6ea0) at pthread_cond_wait.c:453
#6  0x00007f1ebd3ddfae in cnd_wait () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:112
#7  0x00007f1ebd39337d in util_queue_thread_func () at ../mesa-25.3.4/src/util/u_queue.c:275
#8  0x00007f1ebd3ddedd in impl_thrd_routine () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:43
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 5 (Thread 0x7f1ec6e636c0 (LWP 80367)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=7) at cancellation.c:49
#2  0x00007f1ee2bf71b4 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=7) at cancellation.c:75
#3  0x00007f1ee2c714ee in __GI___poll (fds=fds@entry=0x7f1ec6e61d80, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#4  0x00007f1ee66cdcf5 in poll (__fds=0x7f1ec6e61d80, __nfds=2, __timeout=-1) at /usr/include/bits/poll2.h:44
#5  QtWaylandClient::EventThread::run (this=0x562b7f0de150) at /usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:184
#6  0x00007f1ee3445c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#7  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#8  QThreadPrivate::start (arg=0x562b7f0de150) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 4 (Thread 0x7f1ec76646c0 (LWP 80366)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=7) at cancellation.c:49
#2  0x00007f1ee2bf71b4 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=7) at cancellation.c:75
#3  0x00007f1ee2c714ee in __GI___poll (fds=fds@entry=0x7f1ec7662d80, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#4  0x00007f1ee66cdcf5 in poll (__fds=0x7f1ec7662d80, __nfds=2, __timeout=-1) at /usr/include/bits/poll2.h:44
#5  QtWaylandClient::EventThread::run (this=0x562b7f1176f0) at /usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:184
#6  0x00007f1ee3445c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#7  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#8  QThreadPrivate::start (arg=0x562b7f1176f0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 3 (Thread 0x7f1ec7f876c0 (LWP 80365)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:49
#2  0x00007f1ee2bf71b4 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=271) at cancellation.c:75
#3  0x00007f1ee2c71a36 in __GI_ppoll (fds=fds@entry=0x7f1ec0001680, nfds=nfds@entry=2, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f1eddad4784 in ppoll (__fds=0x7f1ec0001680, __nfds=2, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f1ec0000d00, timeout_usec=<optimized out>, fds=0x7f1ec0001680, n_fds=2) at ../glib/glib/gmain.c:4811
#6  g_main_context_iterate_unlocked (context=context@entry=0x7f1ec0000d00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4485
#7  0x00007f1eddad4865 in g_main_context_iteration (context=0x7f1ec0000d00, may_block=1) at ../glib/glib/gmain.c:4556
#8  0x00007f1ee3563cb2 in QEventDispatcherGlib::processEvents (this=0x7f1ec0000be0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#9  0x00007f1ee328acf6 in QEventLoop::processEvents (this=0x7f1ec7f85d30, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#10 QEventLoop::exec (this=0x7f1ec7f85d30, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#11 0x00007f1ee33a677e in QThread::exec (this=this@entry=0x7f1ee380fe20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:672
#12 0x00007f1ee378707e in QDBusConnectionManager::run (this=0x7f1ee380fe20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusconnectionmanager.cpp:145
#13 0x00007f1ee3445c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#14 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#15 QThreadPrivate::start (arg=0x7f1ee380fe20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#16 0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#17 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 2 (Thread 0x7f1ebcdf76c0 (LWP 80368)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f1ee2bf716c in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=<optimized out>, a6=<optimized out>, nr=202) at cancellation.c:49
#2  0x00007f1ee2bf77dc in __futex_abstimed_wait_common64 (private=<optimized out>, futex_word=<optimized out>, expected=<optimized out>, op=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>, cancel=<optimized out>) at futex-internal.c:87
#4  0x00007f1ee2bf9e9e in __pthread_cond_wait_common (cond=0x562b7f368ef8, mutex=0x562b7f368ec8, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#5  ___pthread_cond_wait (cond=0x562b7f368ef8, mutex=0x562b7f368ec8) at pthread_cond_wait.c:453
#6  0x00007f1ebd3ddfae in cnd_wait () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:112
#7  0x00007f1ebd39337d in util_queue_thread_func () at ../mesa-25.3.4/src/util/u_queue.c:275
#8  0x00007f1ebd3ddedd in impl_thrd_routine () at ../mesa-25.3.4/src/c11/impl/threads_posix.c:43
#9  0x00007f1ee2bfa98b in start_thread (arg=<optimized out>) at pthread_create.c:448
#10 0x00007f1ee2c7ea0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x7f1ec8657780 (LWP 80364)):
[KCrash Handler]
#4  __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=<optimized out>) at pthread_kill.c:44
#5  0x00007f1ee2ba23a0 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#6  0x00007f1ee2b8957a in __GI_abort () at abort.c:77
#7  0x00007f1ee2f1a41f in std::__glibcxx_assert_fail (file=file@entry=0x562b563395a0 "/usr/include/c++/15.2.1/bits/stl_algo.h", line=line@entry=3638, function=function@entry=0x562b56339548 "constexpr const _Tp& std::clamp(const _Tp&, const _Tp&, const _Tp&) [with _Tp = double]", condition=condition@entry=0x562b563331a7 "!(__hi < __lo)") at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/assert_fail.cc:41
#8  0x0000562b561edec7 in std::clamp<double> (__hi=<optimized out>, __lo=<optimized out>, __val=<optimized out>) at /usr/include/c++/15.2.1/bits/stl_algo.h:3638
#9  0x0000562b561ef01f in std::clamp<double> (__val=<optimized out>, __lo=<optimized out>, __hi=<optimized out>) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/ExportManager.cpp:945
#10 Geometry::rectBounded (rect=..., boundsRect=..., orientations=..., orientations@entry=...) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Geometry.cpp:169
#11 0x0000562b56235e06 in Geometry::rectBounded (x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, boundsRect=..., orientations=...) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Geometry.cpp:187
#12 Geometry::qt_static_metacall (_id=_id@entry=23, _a=_a@entry=0x7ffc57341e28, _c=<optimized out>, _o=<optimized out>) at /usr/src/debug/kde-banana-spectacle-git/build/src/spectacle_autogen/include/moc_Geometry.cpp:355
#13 0x0000562b5623912d in Geometry::qt_static_metacall (_o=<optimized out>, _c=QMetaObject::InvokeMetaMethod, _id=23, _a=0x7ffc57341e28) at /usr/src/debug/kde-banana-spectacle-git/build/src/spectacle_autogen/include/moc_Geometry.cpp:307
#14 Geometry::qt_metacall (this=<optimized out>, _c=QMetaObject::InvokeMetaMethod, _id=23, _a=0x7ffc57341e28) at /usr/src/debug/kde-banana-spectacle-git/build/src/spectacle_autogen/include/moc_Geometry.cpp:420
#15 0x00007f1ee53d5d03 in QQmlObjectOrGadget::metacall (this=<optimized out>, type=<optimized out>, index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlobjectorgadget.cpp:14
#16 0x00007f1ee5285d51 in QV4::CallMethod (object=..., index=<optimized out>, returnType=..., argCount=<optimized out>, argTypes=<optimized out>, engine=<optimized out>, callArgs=<optimized out>, callType=<optimized out>) at /usr/include/qt6/QtCore/qvarlengtharray.h:90
#17 QV4::QObjectMethod::callPrecise (object=..., data=..., engine=<optimized out>, callArgs=<optimized out>, callType=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2085
#18 0x00007f1ee528fb95 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:3117
#19 operator()<QV4::QObjectMethod::callInternal(const QV4::Value*, const QV4::Value*, int) const::<lambda()> > (__closure=<synthetic pointer>, call=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:3094
#20 QV4::QObjectMethod::callInternal (this=0x7ffc57342250, thisObject=<optimized out>, argv=0x7f1e9f6e05a0, argc=5) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:3117
#21 0x00007f1ee52e97be in QV4::Moth::VME::interpret (frame=0x139ec, frame@entry=0x7ffc57342630, engine=0x562b7f774d90, code=0x7f1e9f6e0588 "\300\"\032\237\036\177") at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:804
#22 0x00007f1ee52ed2c6 in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:493
#23 0x00007f1ee5235300 in QV4::doCall (self=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4function.cpp:53
#24 0x00007f1ee5391ed4 in QQmlJavaScriptExpression::evaluate (this=<optimized out>, callData=<optimized out>, isUndefined=0x7ffc573427d0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:238
#25 0x00007f1ee531d33a in QQmlBinding::evaluate (this=this@entry=0x562b7f6d5930, isUndefined=isUndefined@entry=0x7ffc573427d0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:195
#26 0x00007f1ee5323d19 in QQmlBinding::doUpdate (this=0x562b7f6d5930, watcher=..., flags=..., scope=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:713
#27 0x00007f1ee5322b9d in QQmlBinding::update (this=0x562b7f6d5930, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:165
#28 0x00007f1ee5787618 in QPropertyObserverPointer::notify(QUntypedPropertyData*) [clone .isra.0] (propertyDataPtr=0x562b7f6c5470, this=<optimized out>) at /usr/include/qt6/QtCore/6.10.2/QtCore/private/qproperty_p.h:916
#29 0x00007f1ee57b6cba in QObjectCompatProperty<QQuickItemPrivate, double, &QQuickItemPrivate::_qt_property_width_offset, &QQuickItemPrivate::setWidth, &QQuickItemPrivate::widthChanged, decltype(nullptr)>::notify (this=0x562b7f6c5470) at /usr/include/qt6/QtCore/6.10.2/QtCore/private/qproperty_p.h:671
#30 0x00007f1ee578e418 in QQuickItem::geometryChange (this=0x562b7f6d4c20, newGeometry=..., oldGeometry=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:3919
#31 0x00007f1ee579e492 in QQuickItem::setImplicitSize (this=0x562b7f6d4c20, w=<optimized out>, h=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:7728
#32 0x00007f1ee57cd904 in QQuickLoaderPrivate::_q_updateSize (this=this@entry=0x562b7f6c5340, loaderGeometryChanged=loaderGeometryChanged@entry=true) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:938
#33 0x00007f1ee57cde72 in QQuickLoaderPrivate::initResize (this=0x562b7f6c5340) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:107
#34 QQuickLoaderPrivate::incubatorStateChanged (this=0x562b7f6c5340, status=QQmlIncubator::Ready) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:677
#35 QQuickLoaderIncubator::statusChanged (this=<optimized out>, status=QQmlIncubator::Ready) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:664
#36 0x00007f1ee5390c36 in QQmlIncubatorPrivate::incubate (this=this@entry=0x562b7fba6690, i=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlincubator.cpp:373
#37 0x00007f1ee53912d8 in QQmlEnginePrivate::incubate (this=0x562b7f7746e0, i=..., forContext=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlincubator.cpp:53
#38 0x00007f1ee5347911 in QQmlComponent::create (this=<optimized out>, incubator=..., context=<optimized out>, context@entry=0x562b7fba5b00, forContext=forContext@entry=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1585
#39 0x00007f1ee57c8140 in QQuickLoaderPrivate::_q_sourceLoaded (this=0x562b7f6c5340) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:734
#40 0x00007f1ee57cd02d in QQuickLoader::setActive (this=0x562b7f6d4c20, newVal=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:315
#41 0x00007f1ee53094b5 in QQmlPropertyData::writeProperty (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:364
#42 0x00007f1ee53277df in GenericBinding<1>::doStore<bool> (this=0x562b7f6d5810, value=<optimized out>, pd=<optimized out>, flags=...) at /usr/include/qt6/QtCore/qtaggedpointer.h:120
#43 GenericBinding<1>::write (this=0x562b7f6d5810, result=..., isUndefined=false, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:245
#44 0x00007f1ee5323db5 in QQmlBinding::doUpdate (this=0x562b7f6d5810, watcher=..., flags=..., scope=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:715
#45 0x00007f1ee5322b9d in QQmlBinding::update (this=0x562b7f6d5810, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:165
#46 0x00007f1ee53bbf58 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:74
#47 0x00007f1ee32ecb82 in doActivate<false> (sender=0x562b7f6a4fc0, signal_index=58, argv=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4162
#48 0x00007f1ee547f573 in QQmlVMEMetaObject::activate (this=<optimized out>, object=<optimized out>, index=1, args=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlvmemetaobject.cpp:1539
#49 QQmlVMEMetaObject::metaCall (this=<optimized out>, o=<optimized out>, c=<optimized out>, _id=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlvmemetaobject.cpp:1059
#50 0x00007f1ee53094e6 in QQmlPropertyData::doMetacall<(QMetaObject::Call)2> (this=<optimized out>, object=<optimized out>, idx=<optimized out>, argv=0x7ffc573455e0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:395
#51 QQmlPropertyData::writeProperty (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:415
#52 0x00007f1ee5321235 in QObjectPointerBinding::compareAndSet<QObjectPointerBinding::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>)::{lambda()#1}>(QQmlMetaObject const&, QObject*, QQmlPropertyData const*, QFlags<QQmlPropertyData::WriteFlag>, QObjectPointerBinding::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>)::{lambda()#1} const&) const (this=<optimized out>, resultMo=..., resultObject=<optimized out>, pd=<optimized out>, flags=..., slowWrite=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:836
#53 QObjectPointerBinding::write (this=0x562b7f6a5750, result=..., isUndefined=<optimized out>, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:818
#54 0x00007f1ee5323db5 in QQmlBinding::doUpdate (this=0x562b7f6a5750, watcher=..., flags=..., scope=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:715
#55 0x00007f1ee5322b9d in QQmlBinding::update (this=0x562b7f6a5750, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlbinding.cpp:165
#56 0x00007f1ee53bbf58 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:74
#57 0x00007f1ee32ecb82 in doActivate<false> (sender=0x562b7f6a5880, signal_index=33, argv=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4162
#58 0x00007f1ee57cde43 in QQuickLoader::itemChanged (this=<optimized out>) at /usr/src/debug/qt6-declarative/build/src/quick/Quick_autogen/include/moc_qquickloader_p.cpp:277
#59 QQuickLoaderPrivate::incubatorStateChanged (this=0x562b7f6a67a0, status=QQmlIncubator::Ready) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:676
#60 QQuickLoaderIncubator::statusChanged (this=<optimized out>, status=QQmlIncubator::Ready) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:664
#61 0x00007f1ee5390c36 in QQmlIncubatorPrivate::incubate (this=this@entry=0x562b7fa5a7c0, i=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlincubator.cpp:373
#62 0x00007f1ee53912d8 in QQmlEnginePrivate::incubate (this=0x562b7f7746e0, i=..., forContext=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlincubator.cpp:53
#63 0x00007f1ee5347911 in QQmlComponent::create (this=<optimized out>, incubator=..., context=<optimized out>, context@entry=0x562b7fb7c170, forContext=forContext@entry=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1585
#64 0x00007f1ee57c8140 in QQuickLoaderPrivate::_q_sourceLoaded (this=0x562b7f6a67a0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quick/items/qquickloader.cpp:734
#65 0x00007f1ee53caf84 in QQmlObjectCreator::finalize (this=0x562b7f83ef70, interrupt=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlobjectcreator.cpp:1617
#66 0x00007f1ee533bf05 in QQmlComponentPrivate::complete (enginePriv=0x562b7f7746e0, state=state@entry=0x562b7f68f950) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/ftw/qbipointer_p.h:133
#67 0x00007f1ee533ed4c in QQmlComponentPrivate::completeCreate (this=0x562b7f68f8d0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1344
#68 0x00007f1ee53404a5 in QQmlComponent::completeCreate (this=0x562b7f68a210) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1306
#69 QQmlComponentPrivate::createWithProperties (this=0x562b7f68f8d0, parent=parent@entry=0x0, properties=..., context=<optimized out>, behavior=behavior@entry=QQmlComponentPrivate::CreateDefault, createFromQml=createFromQml@entry=false) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:998
#70 0x00007f1ee534076b in QQmlComponent::createWithInitialProperties (this=this@entry=0x562b7f68a210, initialProperties=..., context=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:964
#71 0x0000562b5626f7bf in SpectacleWindow::setSource (this=0x562b7f67f010, source=..., initialProperties=...) at /usr/include/c++/15.2.1/bits/unique_ptr.h:192
#72 0x0000562b562a574b in CaptureWindow::setMode (mode=<optimized out>, this=0x562b7f67f010) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Gui/CaptureWindow.cpp:130
#73 CaptureWindow::CaptureWindow (mode=<optimized out>, parent=0x0, this=0x562b7f67f010, screen=<optimized out>, engine=0x562b7f774250) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Gui/CaptureWindow.cpp:87
#74 CaptureWindow::makeUnique (mode=<optimized out>, parent=0x0, screen=<optimized out>, engine=<optimized out>) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Gui/CaptureWindow.cpp:103
#75 SpectacleCore::initCaptureWindows (this=0x7f1ec0009bc0, mode=CaptureWindow::Image) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/SpectacleCore.cpp:1483
#76 0x0000562b562a5c85 in operator() (__closure=0x562b7f7b1000, image=...) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/SpectacleCore.cpp:208
#77 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#78 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int, 0>, QtPrivate::List<const QImage&>, void, SpectacleCore::SpectacleCore(QObject*)::<lambda(const QImage&)> >::call(SpectacleCore::SpectacleCore(QObject*)::<lambda(const QImage&)>&, void**)::<lambda()> > (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#79 QtPrivate::FunctorCall<std::integer_sequence<long unsigned int, 0>, QtPrivate::List<const QImage&>, void, SpectacleCore::SpectacleCore(QObject*)::<lambda(const QImage&)> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#80 QtPrivate::FunctorCallable<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QImage&)>, const QImage&>::call<QtPrivate::List<QImage const&>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#81 QtPrivate::QCallableObject<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QImage&)>, QtPrivate::List<const QImage&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x562b7f7b0ff0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#82 0x00007f1ee32ecf0f in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#83 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4272
#84 0x0000562b562729d3 in QMetaObject::activate<void, QImage> (sender=0x7f1ee3e33430, mo=<optimized out>, local_signal_index=3, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:319
#85 ImagePlatform::newCroppableScreenshotTaken (this=this@entry=0x562b7f7b1790, _t1=...) at /usr/src/debug/kde-banana-spectacle-git/build/src/spectacle_autogen/include/moc_ImagePlatform.cpp:243
#86 0x0000562b5628a451 in ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}::operator()(QList<ResultVariant> const&) const (__closure=0x7f1ec00098d0, results=...) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Platforms/ImagePlatformKWin.cpp:499
#87 QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QList<ResultVariant> const&>, void, ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}>::call(ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}&, void**)::{lambda()#1}::operator()() const (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#88 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QList<ResultVariant> const&>, void, ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}>::call(ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}&, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QList<ResultVariant> const&>, void, ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}>::call(ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}&, void**)::{lambda()#1}&&) (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#89 QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QList<ResultVariant> const&>, void, ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}>::call(ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}&, void**) (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#90 QtPrivate::FunctorCallable<ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}, QList<ResultVariant> const&>::call<QtPrivate::List<QList<ResultVariant> const&>, void>(ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}&, void*, void**) (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#91 QtPrivate::QCallableObject<ImagePlatformKWin::trackSource<void (ImagePlatform::*)(QImage const&)>(ScreenShotSourceMeta2*, void (ImagePlatform::*)(QImage const&))::{lambda(QList<ResultVariant> const&)#1}, QtPrivate::List<QList<ResultVariant> const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=0x7f1ec00098c0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#92 0x00007f1ee32ecf0f in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#93 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4272
#94 0x0000562b5627ccb2 in QMetaObject::activate<void, QList<ResultVariant> > (sender=<optimized out>, mo=<optimized out>, local_signal_index=0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:319
#95 ScreenShotSourceMeta2::finished (this=<optimized out>, _t1=...) at /usr/src/debug/kde-banana-spectacle-git/build/src/spectacle_autogen/include/moc_ImagePlatformKWin.cpp:584
#96 operator() (__closure=0x562b7f9935f0, result=...) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Platforms/ImagePlatformKWin.cpp:371
#97 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#98 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int, 0>, QtPrivate::List<const ResultVariant&>, void, ScreenShotSourceMeta2::ScreenShotSourceMeta2(QVector<ScreenShotSource2*>&)::<lambda(const ResultVariant&)> >::call(ScreenShotSourceMeta2::ScreenShotSourceMeta2(QVector<ScreenShotSource2*>&)::<lambda(const ResultVariant&)>&, void**)::<lambda()> > (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#99 QtPrivate::FunctorCall<std::integer_sequence<long unsigned int, 0>, QtPrivate::List<const ResultVariant&>, void, ScreenShotSourceMeta2::ScreenShotSourceMeta2(QVector<ScreenShotSource2*>&)::<lambda(const ResultVariant&)> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#100 QtPrivate::FunctorCallable<ScreenShotSourceMeta2::ScreenShotSourceMeta2(QVector<ScreenShotSource2*>&)::<lambda(const ResultVariant&)>, const ResultVariant&>::call<QtPrivate::List<ResultVariant const&>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#101 QtPrivate::QCallableObject<ScreenShotSourceMeta2::ScreenShotSourceMeta2(QVector<ScreenShotSource2*>&)::<lambda(const ResultVariant&)>, QtPrivate::List<const ResultVariant&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x562b7f9935e0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#102 0x00007f1ee32da474 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1413
#103 0x00007f1ee5fc0380 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7f1ec000be10, e=0x7f1e952e71c0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305
#104 0x00007f1ee327ff48 in QCoreApplication::notifyInternal2 (receiver=0x7f1ec000be10, event=event@entry=0x7f1e952e71c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#105 0x00007f1ee3280320 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7f1e952e71c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#106 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x562b7f07df90) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
#107 0x00007f1ee3565e78 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
#108 postEventSourceDispatch (s=0x562b7f090800) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#109 0x00007f1eddad2f8d in g_main_dispatch (context=0x7f1ec0000f60) at ../glib/glib/gmain.c:3565
#110 0x00007f1eddad4657 in g_main_context_dispatch_unlocked (context=0x7f1ec0000f60) at ../glib/glib/gmain.c:4425
#111 g_main_context_iterate_unlocked (context=context@entry=0x7f1ec0000f60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4490
#112 0x00007f1eddad4865 in g_main_context_iteration (context=0x7f1ec0000f60, may_block=1) at ../glib/glib/gmain.c:4556
#113 0x00007f1ee3563cb2 in QEventDispatcherGlib::processEvents (this=0x562b7f090910, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#114 0x00007f1ee328acf6 in QEventLoop::processEvents (this=0x7ffc57348580, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#115 QEventLoop::exec (this=0x7ffc57348580, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#116 0x00007f1ee32849f1 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452
#117 0x0000562b56208d2e in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Main.cpp:140
Warning: the current language does not match this frame.

Reported using DrKonqi
Comment 1 Akseli Lahtinen 2026-02-09 12:18:47 UTC
After building the project manually it does not crash, unsure why yet.
Comment 2 Akseli Lahtinen 2026-02-09 12:40:48 UTC
#6  0x000055555558b01f in std::clamp<double> (__val=<optimized out>, __lo=<optimized out>, __hi=<optimized out>)
    at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/ExportManager.cpp:945
#7  Geometry::rectBounded (rect=..., boundsRect=..., orientations=..., orientations@entry=...)
    at /usr/src/debug/kde-banana-spectacle-git/spectacle/src/Geometry.cpp:169


Super confusing, since ExportManager does not use clamping anywhere?
Comment 3 Bug Janitor Service 2026-02-09 17:23:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/spectacle/-/merge_requests/510
Comment 4 Tobias Fella 2026-02-10 10:08:25 UTC
*** Bug 515777 has been marked as a duplicate of this bug. ***
Comment 5 Noah Davis 2026-02-10 21:29:56 UTC
Git commit 3972ca823f9fe0ce8cee45ce5fe7064e4e37351f by Noah Davis.
Committed on 10/02/2026 at 21:29.
Pushed by ndavis into branch 'master'.

Geometry: replace std::clamp with a custom fuction that doesn't assert

Prevents unnecessary asserts from crashing the app when asserts are enabled.
Also behaves more like qBound, which was the intention all along.

M  +12   -4    src/Geometry.cpp

https://invent.kde.org/plasma/spectacle/-/commit/3972ca823f9fe0ce8cee45ce5fe7064e4e37351f
Comment 6 Noah Davis 2026-02-10 21:30:30 UTC
Git commit f4377638a05e7144cfa722d5177c34768933d244 by Noah Davis.
Committed on 10/02/2026 at 21:30.
Pushed by ndavis into branch 'Plasma/6.6'.

Geometry: replace std::clamp with a custom fuction that doesn't assert

Prevents unnecessary asserts from crashing the app when asserts are enabled.
Also behaves more like qBound, which was the intention all along.

(cherry picked from commit 3972ca823f9fe0ce8cee45ce5fe7064e4e37351f)

Co-authored-by: Noah Davis <noahadvs@gmail.com>

M  +12   -4    src/Geometry.cpp

https://invent.kde.org/plasma/spectacle/-/commit/f4377638a05e7144cfa722d5177c34768933d244