from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.relativelayout import RelativeLayout
+from kivy.uix.label import Label
from kivy.properties import ListProperty, StringProperty
from kivy.core.window import Window
from kivy.lang import Builder
register_fonts()
+from .helpers import Config
from .key import Key
from .mapping import Mapping
if len(self.keylist) > 2:
self.third_key = self.keylist[2]
-class Screen(FloatLayout):
+class UnfocusedOverlay(Label):
pass
+class Screen(FloatLayout):
+ def __init__(self, **kwargs):
+ 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:
+ return
+ if not focus:
+ self.add_widget(self.unfocused_widget)
+ 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)