diff options
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/frontend_gtk.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/frontend/frontend_gtk.py b/frontend/frontend_gtk.py index fd3c91b..0a30749 100644 --- a/frontend/frontend_gtk.py +++ b/frontend/frontend_gtk.py @@ -46,9 +46,13 @@ class CallbacksMainWindow(object): def _o(pages, stopbutton): """Always return False -> remove from the idle queue after first execution""" - for i in range(pages.get_n_pages()): - pages.get_nth_page(i).set_sensitive(True) - stopbutton.set_sensitive(False) + gtk.gdk.threads_enter() + try: + for i in range(pages.get_n_pages()): + pages.get_nth_page(i).set_sensitive(True) + stopbutton.set_sensitive(False) + finally: + gtk.gdk.threads_leave() return False def worker(*args): @@ -537,7 +541,11 @@ class MainWindow(object): def _o(func, *args, **kwargs): """Always return False -> remove from the idle queue after first execution""" - func(*args, **kwargs) + try: + gtk.gdk.threads_enter() + func(*args, **kwargs) + finally: + gtk.gdk.threads_leave() return False def issue_state(self): |