mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-08 14:41:57 +08:00
#3705 Hotkeys broken on macOS servers
This commit is contained in:
51
src/lib/platform/OSXScreen.mm
Normal file → Executable file
51
src/lib/platform/OSXScreen.mm
Normal file → Executable file
@@ -1282,36 +1282,31 @@ OSXScreen::onKey(CGEventRef event)
|
||||
return true;
|
||||
}
|
||||
|
||||
// check for hot key. when we're on a secondary screen we disable
|
||||
// all hotkeys so we can capture the OS defined hot keys as regular
|
||||
// keystrokes but that means we don't get our own hot keys either.
|
||||
// so we check for a key/modifier match in our hot key map.
|
||||
if (!m_isOnScreen) {
|
||||
HotKeyToIDMap::const_iterator i =
|
||||
m_hotKeyToIDMap.find(HotKeyItem(virtualKey,
|
||||
m_keyState->mapModifiersToCarbon(macMask)
|
||||
& 0xff00u));
|
||||
if (i != m_hotKeyToIDMap.end()) {
|
||||
UInt32 id = i->second;
|
||||
// check for hot key
|
||||
HotKeyToIDMap::const_iterator i =
|
||||
m_hotKeyToIDMap.find(HotKeyItem(virtualKey,
|
||||
m_keyState->mapModifiersToCarbon(macMask)
|
||||
& 0xff00u));
|
||||
if (i != m_hotKeyToIDMap.end()) {
|
||||
UInt32 id = i->second;
|
||||
|
||||
// determine event type
|
||||
Event::Type type;
|
||||
//UInt32 eventKind = GetEventKind(event);
|
||||
if (eventKind == kCGEventKeyDown) {
|
||||
type = m_events->forIPrimaryScreen().hotKeyDown();
|
||||
}
|
||||
else if (eventKind == kCGEventKeyUp) {
|
||||
type = m_events->forIPrimaryScreen().hotKeyUp();
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_events->addEvent(Event(type, getEventTarget(),
|
||||
HotKeyInfo::alloc(id)));
|
||||
|
||||
return true;
|
||||
// determine event type
|
||||
Event::Type type;
|
||||
//UInt32 eventKind = GetEventKind(event);
|
||||
if (eventKind == kCGEventKeyDown) {
|
||||
type = m_events->forIPrimaryScreen().hotKeyDown();
|
||||
}
|
||||
else if (eventKind == kCGEventKeyUp) {
|
||||
type = m_events->forIPrimaryScreen().hotKeyUp();
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_events->addEvent(Event(type, getEventTarget(),
|
||||
HotKeyInfo::alloc(id)));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// decode event type
|
||||
|
||||
Reference in New Issue
Block a user