-
step authored
Before this commit, reproduce this issue with the following command: ```sh yad --form --field=chk:CHK TRUE --changed-action='echo 2:' --field=changes ``` *don't* use your mouse; instead press the Space key *once* to toggle the checkbox. The "changes" field isn't updated but it should be. This is the issue. Now pressing Space again (or dragging/clicking the mouse) pumps the main loop, which frees the thread to run, which updates the "changes" field. This is a manual work-around for this issue. To fix this issue I replaced `gtk_main_iteration` with `gtk_main_iteration_do (FALSE)`. This way the main loop doesn't block when no events are pending, and the thread is always free to run. Then slow down the busy-waiting loop not to hog the CPU. 10000 us keeps yad below 1% CPU on my rig, and the form UI remains very responsive. I'm using this command to test how responsive it is: ```sh yad --no-buttons --form --changed-action='echo 1:' --field=changes '' --field=2:CHK TRUE --field=3:CHK TRUE --field=4:CHK TRUE --field=5:CHK TRUE --field=6:CHK TRUE --field=7:CHK TRUE & ``` Just keep pressing Tab Space Tab Space ... quickly to update each field. Test with and without `--changed-action`.
Name |
Last commit
|
Last update |
---|---|---|
data | ||
po | ||
src | ||
.gitignore | ||
AUTHORS | ||
COPYING | ||
ChangeLog.old | ||
Makefile.am | ||
NEWS | ||
README.md | ||
THANKS | ||
TODO | ||
configure.ac |