aboutsummaryrefslogtreecommitdiff
path: root/backends/events/default
diff options
context:
space:
mode:
authorStephen Kennedy2008-07-12 12:40:57 +0000
committerStephen Kennedy2008-07-12 12:40:57 +0000
commit28cb417fb1343b599d5dbc31199c750365bc6f9a (patch)
treef2dddbe9b9d43329a3bd1477c8a73a1da2a3733b /backends/events/default
parent8aa09cbb991d5122d8327ddfa41f67ee2c9a938d (diff)
downloadscummvm-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.cpp12
-rw-r--r--backends/events/default/default-events.h4
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;