diff options
author | terkhen <terkhen@openttd.org> | 2010-07-14 15:08:31 +0000 |
---|---|---|
committer | terkhen <terkhen@openttd.org> | 2010-07-14 15:08:31 +0000 |
commit | fa3d9d04d386daf3ee92c9ab0f2624fbdcd1abf4 (patch) | |
tree | 24cd72f3eae0edfc8d4a5ec691869b9582a36856 /src/window.cpp | |
parent | 0753669fa75cc6cddabe617478ae8dc45321510c (diff) | |
download | openttd-fa3d9d04d386daf3ee92c9ab0f2624fbdcd1abf4.tar.xz |
(svn r20144) -Feature: Allow to configure the delay of hover events, or to disable them completely.
Diffstat (limited to 'src/window.cpp')
-rw-r--r-- | src/window.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/window.cpp b/src/window.cpp index d8162d439..5658e6887 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2043,7 +2043,6 @@ enum MouseClick { MAX_OFFSET_DOUBLE_CLICK = 5, ///< How much the mouse is allowed to move to call it a double click TIME_BETWEEN_DOUBLE_CLICK = 500, ///< Time between 2 left clicks before it becoming a double click, in ms MAX_OFFSET_HOVER = 5, ///< Maximum mouse movement before stopping a hover event. - TIME_HOVER = 1000, ///< Time required to activate a hover event, in ms. }; extern EventState VpHandlePlaceSizingDrag(); @@ -2242,17 +2241,19 @@ void HandleMouseEvents() static int hover_time = 0; static Point hover_pos = {0, 0}; - if (click != MC_NONE || mousewheel != 0 || _left_button_down || _right_button_down || - hover_pos.x == 0 || abs(_cursor.pos.x - hover_pos.x) >= MAX_OFFSET_HOVER || - hover_pos.y == 0 || abs(_cursor.pos.y - hover_pos.y) >= MAX_OFFSET_HOVER) { - hover_pos = _cursor.pos; - hover_time = _realtime_tick; - _mouse_hovering = false; - } else { - if (hover_time != 0 && _realtime_tick - hover_time > TIME_HOVER) { - click = MC_HOVER; - _input_events_this_tick++; - _mouse_hovering = true; + if (_settings_client.gui.hover_delay > 0) { + if (click != MC_NONE || mousewheel != 0 || _left_button_down || _right_button_down || + hover_pos.x == 0 || abs(_cursor.pos.x - hover_pos.x) >= MAX_OFFSET_HOVER || + hover_pos.y == 0 || abs(_cursor.pos.y - hover_pos.y) >= MAX_OFFSET_HOVER) { + hover_pos = _cursor.pos; + hover_time = _realtime_tick; + _mouse_hovering = false; + } else { + if (hover_time != 0 && _realtime_tick - hover_time > _settings_client.gui.hover_delay * 1000) { + click = MC_HOVER; + _input_events_this_tick++; + _mouse_hovering = true; + } } } |