Browse Source

Button click works

Arthur Yefimov 3 years ago
parent
commit
67cf66adcc
2 changed files with 5 additions and 4 deletions
  1. 1 1
      src/FreeOberon.Mod
  2. 4 3
      src/OV.Mod

+ 1 - 1
src/FreeOberon.Mod

@@ -1151,7 +1151,7 @@ BEGIN
   curX := 0; curY := 0;
   curX := 0; curY := 0;
   success := FALSE;
   success := FALSE;
   ParseArgs(fs, sw, w, h, fnames);
   ParseArgs(fs, sw, w, h, fnames);
-  T.Settings(0, 0, {T.resizable, T.window, T.center});
+  T.Settings(0, 0, {T.resizable, T.window(*, T.center*)});
   T.SetTitle('Free Oberon');
   T.SetTitle('Free Oberon');
   T.Init;
   T.Init;
   IF T.Done THEN
   IF T.Done THEN

+ 4 - 3
src/OV.Mod

@@ -1370,7 +1370,7 @@ END MenuMouseDown;
 PROCEDURE MenuMouseUp*(c: Control; x, y, button: INTEGER);
 PROCEDURE MenuMouseUp*(c: Control; x, y, button: INTEGER);
 VAR p: Control;
 VAR p: Control;
 BEGIN
 BEGIN
-  IF button = 1 (*!FIXME BTN LEFT*) THEN
+  IF button = 1 THEN
     IF c = c.app.menu THEN p := GetMenuAt(c.app, x, y)
     IF c = c.app.menu THEN p := GetMenuAt(c.app, x, y)
     ELSIF c = c.app.statusbar THEN p := GetStatusbarAt(c.app, x, y)
     ELSIF c = c.app.statusbar THEN p := GetStatusbarAt(c.app, x, y)
     ELSE p := c
     ELSE p := c
@@ -2488,16 +2488,17 @@ END GetControlAt;
 
 
 PROCEDURE OnMouse(app: App; VAR E: T.Event);
 PROCEDURE OnMouse(app: App; VAR E: T.Event);
 VAR c: Control;
 VAR c: Control;
+  btn: INTEGER;
 BEGIN
 BEGIN
   IF E.button = 0 THEN (* Release mouse *)
   IF E.button = 0 THEN (* Release mouse *)
-    app.mouseBtn := 0;
+    btn := app.mouseBtn; app.mouseBtn := 0;
     IF app.dragged # NIL THEN c := app.dragged
     IF app.dragged # NIL THEN c := app.dragged
     ELSE c := GetControlAt(app, E.x, E.y);
     ELSE c := GetControlAt(app, E.x, E.y);
       IF HasModalWindow(app) & (c # app.windows) THEN c := NIL END
       IF HasModalWindow(app) & (c # app.windows) THEN c := NIL END
     END;
     END;
     app.dragged := NIL;
     app.dragged := NIL;
     IF (c # NIL) & (c.do.mouseUp # NIL) THEN
     IF (c # NIL) & (c.do.mouseUp # NIL) THEN
-      c.do.mouseUp(c, E.x - app.dragX, E.y - app.dragY, app.mouseBtn)
+      c.do.mouseUp(c, E.x - app.dragX, E.y - app.dragY, btn)
     END
     END
   ELSIF app.mouseBtn = 0 THEN (* Mouse down event *)
   ELSIF app.mouseBtn = 0 THEN (* Mouse down event *)
     app.mouseBtn := E.button;
     app.mouseBtn := E.button;