Mercurial > pyntnclick
diff gamelib/gamescreen.py @ 139:a5972444ad1e
Improve cursor state handling, disable highlights on modal dialogs
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Tue, 24 Aug 2010 22:02:22 +0200 |
parents | 17411b984dc2 |
children | 29ba5456e8b3 |
line wrap: on
line diff
--- a/gamelib/gamescreen.py Tue Aug 24 21:52:45 2010 +0200 +++ b/gamelib/gamescreen.py Tue Aug 24 22:02:22 2010 +0200 @@ -79,15 +79,19 @@ self.state.mouse_move(event.pos) def show_message(self, message): + self.parent.cursor_highlight(False) # Display the message as a modal dialog MessageDialog(message, 60).present() # queue a redraw to show updated state self.invalidate() + # The cursor could have gone anywhere + self.state.current_scene.mouse_move(self.state.tool, mouse.get_pos()) def show_detail(self, detail): w, h = self.state.set_current_detail(detail) self.detail.set_image_rect(Rect(0, 0, w, h)) self.add_centered(self.detail) + self.parent.cursor_highlight(False) class DetailWindow(Widget): @@ -171,8 +175,13 @@ # This option does nothing, but the method needs to exist for albow return + def enter_screen(self): + CursorWidget.enter_screen(self) + + def leave_screen(self): + CursorWidget.leave_screen(self) + def main_menu_cmd(self): - mouse.set_visible(1) self.shell.show_screen(self.shell.menu_screen) def quit_cmd(self): @@ -185,3 +194,8 @@ def begin_frame(self): if self.running: self.state_widget.animate() + + def mouse_delta(self, event): + CursorWidget.mouse_delta(self, event) + if not self.state_widget.rect.collidepoint(event.pos): + self.cursor_highlight(False)