aboutsummaryrefslogtreecommitdiffstats
path: root/us_maker_edition/src/base/UMain.pas
diff options
context:
space:
mode:
Diffstat (limited to 'us_maker_edition/src/base/UMain.pas')
-rw-r--r--us_maker_edition/src/base/UMain.pas20
1 files changed, 13 insertions, 7 deletions
diff --git a/us_maker_edition/src/base/UMain.pas b/us_maker_edition/src/base/UMain.pas
index 174ef162..c1e45c03 100644
--- a/us_maker_edition/src/base/UMain.pas
+++ b/us_maker_edition/src/base/UMain.pas
@@ -36,6 +36,8 @@ interface
uses
SysUtils,
SDL;
+var
+ CheckMouseButton: boolean; // for checking mouse motion
procedure Main;
procedure MainLoop;
@@ -425,16 +427,12 @@ begin
if (Ini.Mouse > 0) then
begin
case Event.type_ of
- SDL_MOUSEMOTION:
- begin
- mouseDown := false;
- mouseBtn := 0;
- end;
+
SDL_MOUSEBUTTONDOWN:
begin
mouseDown := true;
mouseBtn := Event.button.button;
-
+ CheckMouseButton := true;
if (mouseBtn = SDL_BUTTON_LEFT) or (mouseBtn = SDL_BUTTON_RIGHT) then
Display.OnMouseButton(true);
end;
@@ -442,10 +440,18 @@ begin
begin
mouseDown := false;
mouseBtn := Event.button.button;
-
+ CheckMouseButton := false;
if (mouseBtn = SDL_BUTTON_LEFT) or (mouseBtn = SDL_BUTTON_RIGHT) then
Display.OnMouseButton(false);
end;
+ SDL_MOUSEMOTION:
+ begin
+ if (CheckMouseButton) then
+ mouseDown := true
+ else
+ mouseDown := false;
+ mouseBtn := 0;
+ end;
end;
Display.MoveCursor(Event.button.X * 800 * Screens / ScreenW,