Skip to main content
GameDev.net gamedev.net
🔒 Locked

Action on MouseClicked vs MouseReleased

Started by cmasupra Apr 8, 2012 at 11:25 PM 4 replies 5.1k views
Original Post
cmasupra
cmasupra
I was thinking today about what would be a better trigger to activate buttons: mouse clicked or mouse released. By this I mean, would it be better to have the button do its action when the user clicks their mouse down on it, or when the user releases their mouse on it?

Pros for MouseClicked:
1) Faster reaction to the user clicking the button

Pros for MouseReleased:
1) The user can drag their mouse away from the button if they didn't actually want to click it

I clearly didn't think of very much. Maybe that means it's a stupid topic, but what are you guys' opinions on which one is better?
smasherprog
smasherprog
The standard is to have the action actually happen only on a completed MouseDown and a matching Mouseup. This is important. If a user is Clicks and holds the mouse button down, then drags and releases over a button, the event should not fire off. It should only happen if the button is already in the pressed position.
Wisdom is knowing when to shut up, so try it.
--Game Development http://nolimitsdesigns.com: Reliable UDP library, Threading library, Math Library, UI Library. Take a look, its all free.
Endurion
Endurion
Additionally to what smasherprog said, also the reverse: If the mouse button is pressed and helf over a button, the user drags the cursor off the button and releases it, the event should also not fire off.

If in doubt, compare with your OS behaviour. People prefer common behaviour.
Fruny: Ftagn! Ia! Ia! std::time_put_byname! Mglui naflftagn std::codecvt eY'ha-nthlei!,char,mbstate_t>
cmasupra
cmasupra

The standard is to have the action actually happen only on a completed MouseDown and a matching Mouseup. This is important. If a user is Clicks and holds the mouse button down, then drags and releases over a button, the event should not fire off. It should only happen if the button is already in the pressed position.

Interesting. I knew of the of the problem with clicking and dragging to another button and then releasing, causing the button to activate. I didn't know that what you described was standard. It definitely makes sense, though.
21st Century Moose
21st Century Moose

If in doubt, compare with your OS behaviour. People prefer common behaviour.


This is important. If people are used to the mouse behaving a certain way in their OS, if a program comes along and behaves a different way, the end result is user confusion/unhappiness and added support overhead.
Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls. 

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.