]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler/app.py
Add Unfocused overlay when focus is lost
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler / app.py
index 08a8891d0a9f88601ffcfc1fac6689f6f92053a1..ac1944a1a5075ce92a3b4340670b25fbafd13c9e 100644 (file)
@@ -7,6 +7,7 @@ kivy.require("1.9.1")
 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
@@ -14,6 +15,7 @@ from kivy.lang import Builder
 register_fonts()
 
 
+from .helpers import Config
 from .key import Key
 from .mapping import Mapping
 
@@ -37,9 +39,23 @@ class KeyList(RelativeLayout):
         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)
+
+    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)
+
 class MusicSamplerApp(App):
     def build(self):
         Window.size = (913, 563)