diff options
Diffstat (limited to 'gtk/gtkmodule.c')
-rw-r--r-- | gtk/gtkmodule.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c index ba77dda3..8651d946 100644 --- a/gtk/gtkmodule.c +++ b/gtk/gtkmodule.c @@ -38,10 +38,17 @@ sink_gtkobject(GObject *object) static gboolean python_do_pending_calls(gpointer data) { + gboolean quit = FALSE; + + pyg_block_threads(); if (PyErr_CheckSignals() == -1) { PyErr_SetNone(PyExc_KeyboardInterrupt); - gtk_main_quit(); + quit = TRUE; } + pyg_unblock_threads(); + + if (quit) + gtk_main_quit(); return TRUE; } |