Inappropriate Interface Behaviour during mouseDown

Igor Couto igor at pixelmedia.com.au
Sun Nov 17 13:03:00 EST 2002


Hail Revolution Masters!

I have encountered a problem with the way Revolution implements 
mouseLeave/mouseEnter messages during mouseDown - well, actually, with 
the fact that it does NOT send these messages during mouseDown, 
therefore making the interface behave in an inappropriate manner. I'll 
try to explain better:

According to the Apple interface guidelines, items on the screen should 
give CONSISTENT and APPROPRIATE feedback to the user, guiding the user 
navigation and use of the interface, and indicating as clearly as 
possible what is happening at every instant.

Therefore, the normal behaviour of buttons or clickable items is 
described as follows:
1) The user should have a clear indication that the area they are in is 
a clickable area. This is either done by the use of a graphic element 
that clearly indicates that the area is clickable, or by changing the 
user's cursor when the user enters the clickable area, or by changing 
the appearance of the clickable area when the user is over it, 
therefore alerting the user that the area is 'hot clickable'

2) When the user presses a mouse button down, for which some action is 
programmed to occur, the user should be WARNED/ADVISED that an action 
is about to occur. That is why it is recommended that a change in 
appearance be implemented in a 'mouseDown' event (therefore alerting 
the user), while the actual ACTION itself be implemented in a 'mouseUp' 
event. This is to give the user the chance of 'moving away' while the 
mouse button is still pressed down, in case it was activated by 
accident. This requires that, if the user indeed no longer wants to 
carry out the action, once they move AWAY from the clickable area, the 
appearance should change BACK to its NORMAL or IDLE mode, indicating 
that the user is no longer in 'danger' of triggering the action. 
Similarly, if a user presses a mouse button OUTSIDE a clickable area, 
and then moves the cursor OVER a clickable area, then the clickable 
area should change its appearance, indicating that if the user lets go 
of the mouse at that location, an action will trigger.

The problem in implementing this behaviour in Revolution is that while 
the mouse is down, Revolution does NOT send mouseEnter/mouseLeave 
messages to objects. The 'mouseRelease' message exists, as far as I can 
see, precisely because while the mouse is down, if a user moves AWAY 
from the clickable area, this movement is not detected until AFTER the 
user has RELEASED the mouse. This makes for some 
incongruent/inconsistent behaviour. If a user presses down a button, 
and then moves away, the button should not remain highlighted once the 
cursor moves beyond the button's boundaries. By remaining highlighted, 
the button is telling the user that it is STILL armed and about to 
trigger an action, which is not correct. The reverse (pressing down 
outside the button and then moving onto it) is also true. It SHOULD 
trigger an action, because the user is releasing a button INSIDE the 
clickable area, but that does not happen in Revolution.

I reported this inconsistency to 'support at runrev.com', but I was 
wondering whether:

* Has anyone else noticed this behaviour before, and found a way to 
work around it, in order to obtain the desired interface functionality?
* Does anyone know whether this issue will be addressed in version 2.0?

Your comments and suggestions are much appreciated!

Kind Regards,
--
Igor de Oliveira Couto
----------------------------------
info at pixelmedia.com.au
----------------------------------




More information about the use-livecode mailing list