MarkingTest.T always reports "A Text viewer is marked." Pressing F2 to remove the marker has no effect. How is viewer marking detected correctly?
If you can modify module Oberon, just add the following procedure PROCEDURE PointerOn*(): BOOLEAN; BEGIN RETURN Pointer.on END PointerOn; and use it as follows: MODULE M; IMPORT Viewers, Texts, Oberon; VAR W: Texts.Writer; PROCEDURE P*; VAR V: Viewers.Viewer; X, Y: INTEGER; BEGIN IF Oberon.PointerOn() THEN V := Oberon.MarkedViewer(); Texts.WriteString(W, "A viewer is marked and its coordinates are"); Texts.WriteInt(W, V.X, 4); Texts.WriteInt(W, V.Y, 4) ELSE Texts.WriteString(W, "No viewer is marked.") END ; Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf) END P; BEGIN Texts.OpenWriter(W) END M. ORP.Compile M.Mod ~ M.P