changeset 407:c7a6846262e3

Fix cursor handling after message dismissal.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 28 Aug 2010 22:01:03 +0200
parents 90ae05f25793
children 308a433c4713
files gamelib/gamescreen.py gamelib/widgets.py
diffstat 2 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/gamescreen.py	Sat Aug 28 21:51:26 2010 +0200
+++ b/gamelib/gamescreen.py	Sat Aug 28 22:01:03 2010 +0200
@@ -24,6 +24,7 @@
 
     def __init__(self, screen):
         PaletteView.__init__(self, (BUTTON_SIZE, BUTTON_SIZE), 1, 6, scrolling=True)
+        self.screen = screen
         self.state = screen.state
         self.state_widget = screen.state_widget
 
@@ -44,6 +45,12 @@
         else:
             self.state.set_tool(self.state.inventory[item_no])
 
+    def mouse_down(self, event):
+        if event.button != 1:
+            self.state.cancel_doodah(self.screen)
+        else:
+            PaletteView.handle_mouse(self, event)
+
     def item_is_selected(self, item_no):
         return self.state.tool is self.state.inventory[item_no]
 
--- a/gamelib/widgets.py	Sat Aug 28 21:51:26 2010 +0200
+++ b/gamelib/widgets.py	Sat Aug 28 22:01:03 2010 +0200
@@ -10,6 +10,7 @@
 from albow.resource import get_font, get_image
 from pygame.color import Color
 from pygame.rect import Rect
+from pygame import mouse
 
 from constants import BUTTON_SIZE
 from cursor import CursorWidget
@@ -120,6 +121,9 @@
 
     def mouse_down(self, event):
         self.dismiss()
+        self.screen.state_widget._mouse_move(mouse.get_pos())
+        for widget in self.screen.state_widget.subwidgets:
+            widget._mouse_move(mouse.get_pos())
 
     def cursor_highlight(self):
         return False