diff --git a/Projects/SAMufasaGUI/project1.lpi b/Projects/SAMufasaGUI/project1.lpi
index 3379fbf..bb4647e 100644
--- a/Projects/SAMufasaGUI/project1.lpi
+++ b/Projects/SAMufasaGUI/project1.lpi
@@ -164,7 +164,7 @@
-
+
@@ -219,7 +219,7 @@
-
+
@@ -247,8 +247,8 @@
-
-
+
+
@@ -256,9 +256,9 @@
-
-
-
+
+
+
@@ -279,9 +279,9 @@
-
-
-
+
+
+
@@ -398,9 +398,11 @@
-
-
+
+
+
+
@@ -610,7 +612,7 @@
-
+
@@ -704,8 +706,8 @@
-
-
+
+
@@ -722,7 +724,7 @@
-
+
@@ -1188,7 +1190,7 @@
-
+
@@ -1503,8 +1505,8 @@
-
-
+
+
@@ -1755,133 +1757,129 @@
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Units/MMLCore/bitmaps.pas b/Units/MMLCore/bitmaps.pas
index 7b00184..81d78d1 100644
--- a/Units/MMLCore/bitmaps.pas
+++ b/Units/MMLCore/bitmaps.pas
@@ -892,7 +892,7 @@ end;
procedure TMufasaBitmap.ValidatePoint(x, y: integer);
begin
if (x <0) or (x >= w) or (y < 0) or (y >= h) then
- raise Exception.CreateFmt('You are accesing an invalid point, (%d,%d) at bitmap[%d]',[x,y,index]);
+ raise Exception.CreateFmt('You are accessing an invalid point, (%d,%d) at bitmap[%d]',[x,y,index]);
end;
constructor TMufasaBitmap.Create;
diff --git a/Units/MMLCore/input.pas b/Units/MMLCore/input.pas
index f6ff138..c9dcbfb 100644
--- a/Units/MMLCore/input.pas
+++ b/Units/MMLCore/input.pas
@@ -267,7 +267,11 @@ var
var
rect : TRect;
{$ENDIF}
+ w,h: integer;
begin
+ TClient(Client).MWindow.GetDimensions(w, h);
+ if (x < 0) or (y < 0) or (x > w) or (y > h) then
+ raise Exception.CreateFmt('SetMousePos: X, Y (%d, %d) is not valid', [x, y]);
{$IFDEF MSWINDOWS}
GetWindowRect(TClient(Client).MWindow.TargetHandle, Rect);
diff --git a/Units/MMLCore/window.pas b/Units/MMLCore/window.pas
index 03987b8..5dd4d6e 100644
--- a/Units/MMLCore/window.pas
+++ b/Units/MMLCore/window.pas
@@ -590,6 +590,7 @@ begin
Old_Handler := XSetErrorHandler(@MufasaXErrorHandler);
if XGetWindowAttributes(Self.XDisplay, Self.CurWindow, @Attrib) <> 0 Then
begin
+ { I don't think we need this XTranslateCoordinates... :D }
XTranslateCoordinates(Self.XDisplay, Self.CurWindow, Self.DesktopWindow, 0,0, @newx, @newy, @childwindow);
W := Attrib.Width;
H := Attrib.Height;
@@ -650,6 +651,7 @@ begin
Old_Handler := XSetErrorHandler(@MufasaXErrorHandler);
if XGetWindowAttributes(Self.XDisplay, Self.CurWindow, @Attrib) <> 0 Then
begin
+ { I don't think we need this XTranslateCoordinates... :D }
XTranslateCoordinates(Self.XDisplay, Self.CurWindow, Self.DesktopWindow, 0,0, @newx, @newy, @childwindow);
box := IntToTBox(Attrib.x,Attrib.y,Attrib.x + Attrib.Width -1,Attrib.y +Attrib.Height-1 );
end else