瀏覽代碼

Button click works

Arthur Yefimov 3 年之前
父節點
當前提交
67cf66adcc
共有 2 個文件被更改,包括 5 次插入4 次删除
  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;
   success := FALSE;
   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.Init;
   IF T.Done THEN

+ 4 - 3
src/OV.Mod

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