Afaik it's an issue in gtk (or some versions/builds thereof).
The same should happen if you place "while true do ;" into your event handler.
Apparently there is only one event thread for all the apps in gtk. If one blocks, then all others block too.
I am unaware of a fix for it.
But there are still ways to debug.
You can't block the event handler. But the IDE has "debug history".
You can
- set a breakpoint
- go to the breakpoint properties (right click the breakpoint)
- remove the check/tick from "break"
- set the check for "take snapshot"
Run. Now your code will only pause for a less than a second on the breakpoint. It will then continue, therefore not block gtk.
Menu: View > Debug Windows > History
Each stop at the breakpoint added a history entry. (if there are more than 20 (or maybe 30), then select the camera (camera without plus) to see the full list).
Double click an entry to select.
The stack and watches window will show the value collected when the breakpoint was hit. So you can see what did happen.
Limits:
- It only collects watches (and locals) for the top stack frame.
- It only collects 5 stack frames in the stack window, unless the stack window is open, and set to show more.
Alternatively, remote debug. Then the desktop can freeze, but you need a 2nd machine (or run the to-be-debugged app in a virtual machine)