comparison gamelib/gamescreen.py @ 160:a5a7bb2b4b9b

Fix mouse_move() handling after dismissing message.
author Jeremy Thurgood <firxen@gmail.com>
date Wed, 25 Aug 2010 08:09:59 +0200
parents a039d3b81b3d
children 5184d30669b5
comparison
equal deleted inserted replaced
159:ef4da30f0f38 160:a5a7bb2b4b9b
75 if result: 75 if result:
76 result.process(self) 76 result.process(self)
77 77
78 def mouse_move(self, event): 78 def mouse_move(self, event):
79 if not self.subwidgets: 79 if not self.subwidgets:
80 self.state.mouse_move(event.pos) 80 self._mouse_move(event.pos)
81
82 def _mouse_move(self, pos):
83 self.state.mouse_move(pos)
81 84
82 def show_message(self, message): 85 def show_message(self, message):
83 self.parent.cursor_highlight(False) 86 self.parent.cursor_highlight(False)
84 # Display the message as a modal dialog 87 # Display the message as a modal dialog
85 MessageDialog(message, 60).present() 88 MessageDialog(message, 60).present()
86 # queue a redraw to show updated state 89 # queue a redraw to show updated state
87 self.invalidate() 90 self.invalidate()
88 # The cursor could have gone anywhere 91 # The cursor could have gone anywhere
89 self.state.current_scene.mouse_move(self.state.tool, mouse.get_pos()) 92 if self.subwidgets:
93 self.subwidgets[0]._mouse_move(mouse.get_pos())
94 else:
95 self._mouse_move(mouse.get_pos())
90 96
91 def show_detail(self, detail): 97 def show_detail(self, detail):
92 w, h = self.state.set_current_detail(detail) 98 w, h = self.state.set_current_detail(detail)
93 self.detail.set_image_rect(Rect(0, 0, w, h)) 99 self.detail.set_image_rect(Rect(0, 0, w, h))
94 self.add_centered(self.detail) 100 self.add_centered(self.detail)
115 result = self.state.interact_detail(self.global_to_local(event.pos)) 121 result = self.state.interact_detail(self.global_to_local(event.pos))
116 if result: 122 if result:
117 result.process(self) 123 result.process(self)
118 124
119 def mouse_move(self, event): 125 def mouse_move(self, event):
120 self.state.mouse_move_detail(self.global_to_local(event.pos)) 126 self._mouse_move(event.pos)
127
128 def _mouse_move(self, pos):
129 self.state.mouse_move_detail(self.global_to_local(pos))
121 130
122 def show_message(self, message): 131 def show_message(self, message):
123 self.parent.show_message(message) 132 self.parent.show_message(message)
124 self.invalidate() 133 self.invalidate()
125 134