Input events fixes

This commit is contained in:
Ander
2014-12-20 15:13:15 +01:00
parent 58ae8b80e2
commit 6233ee3f14
2 changed files with 17 additions and 28 deletions

View File

@@ -51,9 +51,7 @@ class ScreenManager():
traceback.print_exc()
self.track = None
self.input_manager = InputManager(size)
self.top_bar_objects = ScreenObjectsManager()
self.down_bar_objects = ScreenObjectsManager()
self.selected_zone = self.top_bar_objects
self.dirty_area = []
self.screen_changed = True
@@ -115,14 +113,12 @@ class ScreenManager():
self.screens[menu_index].check_connection()
self.change_screen(library_index)
def update(self):
surface = pygame.Surface(self.size)
surface.fill([200, 200, 200])
self.screens[self.current_screen].update(surface,
self.screen_changed)
surface.blit(self.down_bar, (0, self.base_size * 7))
self.top_bar_objects.render(surface)
self.down_bar_objects.render(surface)
self.screen_changed = False
return surface
@@ -138,24 +134,15 @@ class ScreenManager():
def event(self, event):
event = self.input_manager.event(event)
if event is not None:
if event.type == InputManager.click:
objects = self.top_bar_objects.get_touch_objects_in_pos(
event.current_pos)
objects.extend(
self.down_bar_objects.get_touch_objects_in_pos(
event.current_pos))
self.click_on_objects(objects, event)
elif event.type == InputManager.key and event.direction == InputManager.enter:
objects = [self.selected_zone.selected_key]
self.click_on_objects(objects, event)
elif event.type == InputManager.key:
if event.direction == InputManager.enter:
logger.error(self.selected_zone.selected_key)
self.click_on_objects(
[self.selected_zone.selected_key], event)
else:
self.change_selection(event, None)
self.screens[self.current_screen].touch_event(event)
if not self.manage_event(event):
self.screens[self.current_screen].touch_event(event)
def manage_event(self, event):
if event.type == InputManager.click:
objects = self.down_bar_objects.get_touch_objects_in_pos(event.current_pos)
return self.click_on_objects(objects, event)
else:
return False
def volume_changed(self, volume):
self.screens[main_screen_index].volume_changed(volume)
@@ -187,6 +174,8 @@ class ScreenManager():
for key in objects:
if key[:-1] == "menu_":
self.change_screen(int(key[-1:]))
return True
return False
def playlists_loaded(self):
self.screens[playlist_index].playlists_loaded()