Mercurial > boomslang
diff gamelib/gamescreen.py @ 397:b1dc0caec668
Improved mouse handling edge cases.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 28 Aug 2010 20:46:06 +0200 |
parents | 56a05ae56574 |
children | 1555677d86f6 |
line wrap: on
line diff
--- a/gamelib/gamescreen.py Sat Aug 28 20:35:24 2010 +0200 +++ b/gamelib/gamescreen.py Sat Aug 28 20:46:06 2010 +0200 @@ -65,9 +65,8 @@ def mouse_down(self, event): self.mouse_move(event) if event.button != 1: # We have a right/middle click - self.state.set_tool(None) - return - if self.subwidgets: + self.state.cancel_doodah(self.screen) + elif self.subwidgets: self.clear_detail() self._mouse_move(event.pos) else: @@ -116,6 +115,7 @@ self.remove(self.detail) self.state.do_leave_detail() self.state.set_current_detail(None) + self._mouse_move(mouse.get_pos()) class DetailWindow(Widget): @@ -145,13 +145,10 @@ def mouse_down(self, event): self.mouse_move(event) if event.button != 1: # We have a right/middle click - if self.state.tool is not None: - self.state.set_tool(None) - return - self.parent.clear_detail() - return - result = self.state.interact_detail(self.global_to_local(event.pos)) - handle_result(result, self) + self.state.cancel_doodah(self.screen) + else: + result = self.state.interact_detail(self.global_to_local(event.pos)) + handle_result(result, self) def mouse_move(self, event): self._mouse_move(event.pos)