mirror of
https://github.com/debauchee/barrier.git
synced 2026-07-06 03:46:29 +08:00
merged 1.4 r1007:1008 into trunk
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
|
||||
#include "CKeyState.h"
|
||||
#include "IEventQueue.h"
|
||||
#include "CLog.h"
|
||||
#include <cstring>
|
||||
#include <algorithm>
|
||||
@@ -383,7 +382,31 @@ static const KeyID s_numpadTable[] = {
|
||||
//
|
||||
|
||||
CKeyState::CKeyState() :
|
||||
m_mask(0)
|
||||
IKeyState(),
|
||||
m_mask(0),
|
||||
m_keyMapPtr(new CKeyMap()),
|
||||
m_keyMap(*m_keyMapPtr)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
CKeyState::CKeyState(IEventQueue& eventQueue, CKeyMap& keyMap) :
|
||||
IKeyState(eventQueue),
|
||||
m_mask(0),
|
||||
m_keyMapPtr(0),
|
||||
m_keyMap(keyMap)
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
CKeyState::~CKeyState()
|
||||
{
|
||||
if (m_keyMapPtr)
|
||||
delete m_keyMapPtr;
|
||||
}
|
||||
|
||||
void
|
||||
CKeyState::init()
|
||||
{
|
||||
memset(&m_keys, 0, sizeof(m_keys));
|
||||
memset(&m_syntheticKeys, 0, sizeof(m_syntheticKeys));
|
||||
@@ -391,11 +414,6 @@ CKeyState::CKeyState() :
|
||||
memset(&m_serverKeys, 0, sizeof(m_serverKeys));
|
||||
}
|
||||
|
||||
CKeyState::~CKeyState()
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
void
|
||||
CKeyState::onKey(KeyButton button, bool down, KeyModifierMask newState)
|
||||
{
|
||||
@@ -431,23 +449,23 @@ CKeyState::sendKeyEvent(
|
||||
// ignore auto-repeat on half-duplex keys
|
||||
}
|
||||
else {
|
||||
EVENTQUEUE->addEvent(CEvent(getKeyDownEvent(), target,
|
||||
getEventQueue().addEvent(CEvent(getKeyDownEvent(), target,
|
||||
CKeyInfo::alloc(key, mask, button, 1)));
|
||||
EVENTQUEUE->addEvent(CEvent(getKeyUpEvent(), target,
|
||||
getEventQueue().addEvent(CEvent(getKeyUpEvent(), target,
|
||||
CKeyInfo::alloc(key, mask, button, 1)));
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (isAutoRepeat) {
|
||||
EVENTQUEUE->addEvent(CEvent(getKeyRepeatEvent(), target,
|
||||
getEventQueue().addEvent(CEvent(getKeyRepeatEvent(), target,
|
||||
CKeyInfo::alloc(key, mask, button, count)));
|
||||
}
|
||||
else if (press) {
|
||||
EVENTQUEUE->addEvent(CEvent(getKeyDownEvent(), target,
|
||||
getEventQueue().addEvent(CEvent(getKeyDownEvent(), target,
|
||||
CKeyInfo::alloc(key, mask, button, 1)));
|
||||
}
|
||||
else {
|
||||
EVENTQUEUE->addEvent(CEvent(getKeyUpEvent(), target,
|
||||
getEventQueue().addEvent(CEvent(getKeyUpEvent(), target,
|
||||
CKeyInfo::alloc(key, mask, button, 1)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user