--- beginners.orig.py	2007-05-15 21:53:06.000000000 +1000
+++ beginners.py	2007-06-11 23:13:44.000000000 +1000
@@ -225,7 +225,7 @@
 def begin_graphics(width=640, height=480, background=Colour.white, title=None):
 
     global _root_window, _canvas, _canvas_x, _canvas_y, _canvas_xs, _canvas_ys
-
+    print "Opening Graphics Window using LivewiresPython-2.1"  # Added by Petria
     # Check for duplicate call
     if _root_window is not None:
         # Lose the window.
@@ -322,7 +322,7 @@
 
     _canvas_x, _canvas_y = x, _canvas_ys-y
     _canvas.update()
-    
+
 
 ### plot() ####################################################################
 
@@ -345,6 +345,17 @@
     _canvas_x, _canvas_y = x, y
     _canvas.update()
 
+### image() ###################################################################
+# Displays .gif images. Added by James.
+
+def image(file, x, y):
+    if not image.cache.has_key(file):
+        image.cache[file] = Tkinter.PhotoImage(file=file)
+    _canvas.create_image(x, _canvas_ys - y, image=image.cache[file])
+    _canvas.update()
+    return
+image.cache = {}
+
 ### draw() ####################################################################
 
 def draw(x, y=None, colour=None):
@@ -663,7 +674,7 @@
     global _mouse_enabled
     if _mouse_enabled: raise ExAlreadyStarted('begin_mouse() already called')
     _canvas.bind("<Motion>",            _mouse_move)
-    _canvas.bind("<Leave>",             _mouse_leave)
+#    _canvas.bind("<Leave>",             _mouse_leave) # Commented out by Petria
     _canvas.bind("<Button-1>",          _mouse_button1down)
     _canvas.bind("<Button-2>",          _mouse_button2down)
     _canvas.bind("<Button-3>",          _mouse_button3down)
@@ -691,7 +702,11 @@
 
 def mouse_position():
     if _mouse_x is None: return None
-    else:                return (_mouse_x, _mouse_y)
+    else:                return (_mouse_x - 1, _canvas_ys - _mouse_y + 1)
+                         # Reverse y co-ordinate of mouse.
+                         # Found an error between mouse position and screen position,
+                         # so adjust for the error.
+                         # Modified by Petria.
 
 ### mouse_buttons() ###########################################################
 
@@ -735,6 +750,7 @@
 
 ### _mouse_leave() ############################################################
 
+
 def _mouse_leave(e):
     global _mouse_x, _mouse_y
     _mouse_x, _mouse_y = None, None
@@ -754,6 +770,7 @@
 def _mouse_buttondown(e, n):
     global _mouse_b
     _mouse_b = _mouse_b | (1 << n)
+
 def _mouse_buttonup(e, n):
     global _mouse_b
     _mouse_b = _mouse_b &~ (1 << n)
@@ -803,7 +820,6 @@
         keys = keys_pressed()
     return thekeys
 
-
 ##############################################################################
 ### Random number things #####################################################
 ##############################################################################
