From 42d7cd043e150a78b796ae5e30dc133ca61a4848 Mon Sep 17 00:00:00 2001 From: Kliment Yanev Date: Thu, 22 Mar 2018 17:33:43 +0100 Subject: [PATCH] Prevent race condition on exit --- printrun/gui/__init__.py | 1 - printrun/pronterface.py | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/printrun/gui/__init__.py b/printrun/gui/__init__.py index d6f03ed5b..eed3776f6 100644 --- a/printrun/gui/__init__.py +++ b/printrun/gui/__init__.py @@ -201,7 +201,6 @@ def createTabbedGui(self): self.notebook.AddPage(page4panel, _("G-Code Plater")) self.panel.SetSizer(self.notesizer) self.panel.Bind(wx.EVT_MOUSE_EVENTS, self.editbutton) - self.Bind(wx.EVT_CLOSE, self.kill) # Custom buttons self.cbuttonssizer = wx.WrapSizer(wx.HORIZONTAL) diff --git a/printrun/pronterface.py b/printrun/pronterface.py index 29b6ec8d9..a2a401fc6 100644 --- a/printrun/pronterface.py +++ b/printrun/pronterface.py @@ -184,7 +184,7 @@ def __init__(self, app, filename = None, size = winsize): self.Bind(wx.EVT_SIZE, self.on_resize) self.Bind(wx.EVT_MAXIMIZE, self.on_maximize) self.window_ready = True - + self.Bind(wx.EVT_CLOSE, self.closewin) # set feedrates in printcore for pause/resume self.p.xy_feedrate = self.settings.xy_feedrate self.p.z_feedrate = self.settings.z_feedrate @@ -331,7 +331,11 @@ def on_maximize(self, event): def on_exit(self, event): self.Close() - def kill(self, e): + def closewin(self, e): + e.StopPropagation() + self.do_exit("") + + def kill(self, e=None): if self.p.printing or self.p.paused: dlg = wx.MessageDialog(self, _("Print in progress ! Are you really sure you want to quit ?"), _("Exit"), wx.YES_NO | wx.ICON_WARNING) if dlg.ShowModal() == wx.ID_NO: