[Oberon] Message system fault
Dan Parnete
dan.parnete at fastwebnet.it
Tue Jul 11 11:12:24 CEST 2006
Hello,
On 10.05.06 I have posted a message about "Message queue and
Pointer". I talked about a big amount of messages on the queue (due to
the number of components moved in the display space) that caused the
Pointer events to be wrong interpreted.
This time I will expose a similar wrong PointerDown event
interpretation of a scrollbar, due to the time spent to render images on
a tabular form.
To observe this you need to download the BBwClient from
ftp://194.243.0.14 and install it. At the login window, first press
ctrl-o to open the Kernel Log, then write:
Application: 85.18.123.96/Dan
Database: DanDb
User: public
Password: user
At the first time a modules upgrade will be done, and then exits. You
have to reenter. Then go to Clienti in the menu bar and select the first
record in the record's list (Ala Data System srl). The interested form
is the bottom one. The first two records have an image attached, and we
will use the vertical scrollbar for the demonstration. If you click on
the arrowDown button, if you are speed enough, you will obtain the
desired effect: one row scroll down. If not, if the mouse will transmit
two (or more) repeated clicks, an unpredictable number of scroll down
will be done (see "ScrollbarChanged pos = x" in the Log), much more then
the real number of clicks transmitted. The first event will start an
image download from the server. During this time the arrowButton rest
pressed, even if you don't thatch anymore the mouse, and continue to
register PointerDown events. As soon as the records with image
disappear, the arrowButton is released.
More interesting is the consequence if you press the arrowUp button to
scroll up. Due to the continuous downloading, the scrolling could
continue for a while.
Observations:
1. Independent of the reason, the message system has a fault. It is not
admissible to register on the queue more Pointer events then those
driven by the user.
2. To limit the scrolling erroneous effects, the scrollbar must:
- call DecPos only if pos > 0
- call IncPos only if pos < max
Applying this restrictions I have eliminated the undesired effect on the
WeelMove.
Thanks,
Dan Parnete
More information about the Oberon
mailing list