Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_extended_modifiers_mapper_osx.h File Reference
#include <QApplication>
#include <QKeyEvent>
#include "kis_shortcut_matcher.h"

Go to the source code of this file.

Functions

void activateLocalMonitor (bool activate)
 
QVector< Qt::Key > queryPressedKeysMac ()
 

Function Documentation

◆ activateLocalMonitor()

void activateLocalMonitor ( bool activate)

Definition at line 68 of file kis_extended_modifiers_mapper_osx.mm.

69{
70 if (activate) {
71 if (localMonitor) {
72 return;
73 }
74 NSEventMask eventMask = (NSEventMaskFlagsChanged | NSEventMaskKeyDown | NSEventMaskKeyUp | NSEventMaskLeftMouseUp
75 | NSEventMaskLeftMouseDown | NSEventMaskMouseEntered | NSEventMaskMouseExited );
76 localMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:eventMask handler:^(NSEvent *event)
77 {
78 mutex.lock();
79 processEvent(event);
80 mutex.unlock();
81
82 return event;
83 }];
84
85 } else {
87 if (localMonitor) {
88 [NSEvent removeMonitor:localMonitor];
89 localMonitor = 0;
90 }
91 }
92}
void processEvent(NSEvent *event)
static ExtendedModifiers::Modifiers extendedMods
static QMutex mutex

References extendedMods, localMonitor, mutex, ExtendedModifiers::None, and processEvent().

◆ queryPressedKeysMac()

QVector< Qt::Key > queryPressedKeysMac ( )

Definition at line 94 of file kis_extended_modifiers_mapper_osx.mm.

95{
96 QVector<Qt::Key> result;
97
98 mutex.lock();
100 result << Qt::Key_Space;
101 }
103 result << Qt::Key_R;
104 }
106 result << Qt::Key_V;
107 }
108
109 Qt::KeyboardModifiers modifiers = QGuiApplication::queryKeyboardModifiers();
110 if (modifiers.testFlag(Qt::ShiftModifier) || extendedMods.testFlag(ExtendedModifiers::Shift)) {
111 result << Qt::Key_Shift;
112 }
113 if (modifiers.testFlag(Qt::ControlModifier) || extendedMods.testFlag(ExtendedModifiers::Command)) {
114 result << Qt::Key_Control;
115 }
116 if (modifiers.testFlag(Qt::MetaModifier) || extendedMods.testFlag(ExtendedModifiers::Control)) {
117 result << Qt::Key_Meta;
118 }
119 if (modifiers.testFlag(Qt::AltModifier) || extendedMods.testFlag(ExtendedModifiers::Option)) {
120 result << Qt::Key_Alt;
121 }
122 mutex.unlock();
123
125
126 return result;
127}
void makeContainerUnique(C &container)

References ExtendedModifiers::Command, ExtendedModifiers::Control, extendedMods, ExtendedModifiers::Key_R, ExtendedModifiers::Key_V, KritaUtils::makeContainerUnique(), mutex, ExtendedModifiers::Option, ExtendedModifiers::Shift, and ExtendedModifiers::Space.