diff options
author | Stephen Kennedy | 2008-07-12 12:40:57 +0000 |
---|---|---|
committer | Stephen Kennedy | 2008-07-12 12:40:57 +0000 |
commit | 28cb417fb1343b599d5dbc31199c750365bc6f9a (patch) | |
tree | f2dddbe9b9d43329a3bd1477c8a73a1da2a3733b /backends/events/default | |
parent | 8aa09cbb991d5122d8327ddfa41f67ee2c9a938d (diff) | |
download | scummvm-rg350-28cb417fb1343b599d5dbc31199c750365bc6f9a.tar.gz scummvm-rg350-28cb417fb1343b599d5dbc31199c750365bc6f9a.tar.bz2 scummvm-rg350-28cb417fb1343b599d5dbc31199c750365bc6f9a.zip |
Added comments in virtual-keyboard-parser.h describing the file format. Added a delay functionality to the delivery of artificial events in DefaultEventManager, to get round events being ignored when delivered consecutively.
svn-id: r33012
Diffstat (limited to 'backends/events/default')
-rw-r--r-- | backends/events/default/default-events.cpp | 12 | ||||
-rw-r--r-- | backends/events/default/default-events.h | 4 |
2 files changed, 13 insertions, 3 deletions
diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp index 6113f0e65c..76a61d1342 100644 --- a/backends/events/default/default-events.cpp +++ b/backends/events/default/default-events.cpp @@ -193,6 +193,7 @@ DefaultEventManager::DefaultEventManager(OSystem *boss) : } _vk = new Common::VirtualKeyboard(); + _artificialEventCounter = 0; } DefaultEventManager::~DefaultEventManager() { @@ -351,10 +352,15 @@ void DefaultEventManager::processMillis(uint32 &millis) { bool DefaultEventManager::pollEvent(Common::Event &event) { uint32 time = _boss->getMillis(); bool result; - + if (!_artificialEventQueue.empty()) { - event = _artificialEventQueue.pop(); - result = true; + // delay the feeding of artificial events + if (++_artificialEventCounter % kArtificialEventDelay == 0) { + event = _artificialEventQueue.pop(); + result = true; + _artificialEventCounter = 0; + } else + result = _boss->pollEvent(event); } else result = _boss->pollEvent(event); diff --git a/backends/events/default/default-events.h b/backends/events/default/default-events.h index e836160188..1a968cad0a 100644 --- a/backends/events/default/default-events.h +++ b/backends/events/default/default-events.h @@ -49,6 +49,10 @@ class DefaultEventManager : public Common::EventManager { Common::VirtualKeyboard *_vk; Common::Queue<Common::Event> _artificialEventQueue; + int _artificialEventCounter; + enum { + kArtificialEventDelay = 10 + }; Common::Point _mousePos; int _buttonState; |