super(Screen, self).__init__(**kwargs)
self.unfocused_widget = UnfocusedOverlay()
Window.bind(focus=self.focus_changed)
+ Window.on_request_close = self.on_request_close
def focus_changed(self, instance, focus):
if Config.no_focus_warning:
else:
self.remove_widget(self.unfocused_widget)
+ def on_request_close(self, *args, **kwargs):
+ self.ids["Mapping"].leave_application()
+
class MusicSamplerApp(App):
def build(self):
Window.size = (913, 563)
threading.Thread(name="MSKeyAction", target=key.run,
args=['-'.join(modifiers)]).start()
elif 'ctrl' in modifiers and (keycode[0] == 113 or keycode[0] == '99'):
- self.keyboard.unbind(on_key_down=self.on_keyboard_down)
- self.stop_all_running()
- for music in self.open_files.values():
- music.stop()
- for thread in threading.enumerate():
- if thread.getName()[0:2] == "MS":
- thread.join()
- elif thread.__class__ == threading.Timer:
- thread.cancel()
- thread.join()
-
+ self.leave_application()
sys.exit()
elif 'ctrl' in modifiers and keycode[0] == 114:
threading.Thread(name="MSReload", target=self.reload).start()
return True
+ def leave_application(self):
+ self.keyboard.unbind(on_key_down=self.on_keyboard_down)
+ self.stop_all_running()
+ for music in self.open_files.values():
+ music.stop()
+ for thread in threading.enumerate():
+ if thread.getName()[0:2] == "MS":
+ thread.join()
+ elif thread.__class__ == threading.Timer:
+ thread.cancel()
+ thread.join()
+
# Helpers
def allowed_modifiers(self, modifiers):
allowed = []