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()

View File

@@ -18,10 +18,10 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
super(TouchScreen, self).__init__()
self.core = core
self.running = False
self.cursor = config['touchscreen']['cursor']
self.cache_dir = config['touchscreen']['cache_dir']
self.cursor = config['touchscreen']['cursor']
self.cache_dir = config['touchscreen']['cache_dir']
self.fullscreen = config['touchscreen']['fullscreen']
self.screen_size = (config['touchscreen']['screen_width'],
self.screen_size = (config['touchscreen']['screen_width'],
config['touchscreen']['screen_height'])
os.environ["SDL_FBDEV"] = config['touchscreen']['sdl_fbdev']
os.environ["SDL_MOUSEDRV"] = config['touchscreen'][
@@ -29,13 +29,13 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
os.environ["SDL_MOUSEDEV"] = config['touchscreen'][
'sdl_mousedev']
pygame.init()
if self.fullscreen:
if self.fullscreen:
self.screen = pygame.display.set_mode(self.screen_size,
pygame.FULLSCREEN)
else:
self.screen = pygame.display.set_mode(self.screen_size)
pygame.mouse.set_visible(self.cursor)
self.screen_manager = ScreenManager(self.screen_size,
pygame.mouse.set_visible(self.cursor)
self.screen_manager = ScreenManager(self.screen_size,
self.core,
self.cache_dir)