diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-10-13 22:21:46 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-10-13 22:21:46 +0300 |
commit | cc929087f90da5479152e26829e10af2c1c3b937 (patch) | |
tree | 5f5dc8d6a9125cfec3bcf8a579ffa3beb69f181d /src/help.h | |
parent | f337481d17838e45020e4ce70e74181adc1cba89 (diff) | |
download | sciteco-cc929087f90da5479152e26829e10af2c1c3b937.tar.gz |
GTK: revised the key processing again to prevent crashes
* Processing a queued list of key events with an idle timer turned out
to be tricky.
Since teco_interface_pop_key_idle_cb() would eventually drive the main
loop with gtk_main_iteration_do() which may result in a recursive
invocation of teco_interface_pop_key_idle_cb() which will eventually crash.
* We'd have to mask the idle watcher during the execution time of teco_interface_pop_key_idle_cb().
* Therefore it has been decided to use a tight loop again to process the
event queue.
After thawing the window, we now manually drive the event loop with gtk_main_iteration_do()
to make sure that the UI is updated.
This could result in a recursive invocation of teco_interface_key_pressed_cb() of course but
the callback is already secured against this.
Diffstat (limited to 'src/help.h')
0 files changed, 0 insertions, 0 deletions