<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5f6e357e03734e420fbb4df855589b05000ebf82">https://github.com/macports/macports-ports/commit/5f6e357e03734e420fbb4df855589b05000ebf82</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 5f6e357e037 new port: input-leap (fork of aqua/barrier)
</span>5f6e357e037 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 5f6e357e03734e420fbb4df855589b05000ebf82
</span>Author: Atte Peltomäki <koston@iki.fi>
AuthorDate: Mon May 1 16:32:14 2023 +0300

<span style='display:block; white-space:pre;color:#404040;'>    new port: input-leap (fork of aqua/barrier)
</span>---
 aqua/input-leap/Portfile                           |  77 ++++++++
 ...-add-support-for-right-side-modifier-keys.patch | 202 +++++++++++++++++++++
 aqua/input-leap/files/remove-gtest.patch           |  13 ++
 aqua/input-leap/files/set-cmake-revision.patch     |  14 ++
 4 files changed, 306 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/input-leap/Portfile b/aqua/input-leap/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..18f8dd10e65
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/input-leap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,77 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           openssl 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        input-leap input-leap 198779cf9e798aac6ad41427e32d031305736de3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             2.4.0-20230416
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          aqua net sysutils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             {GPL-2 OpenSSLException}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {iki.fi:koston @Koston-0xDEADBEEF} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         share a keyboard and mouse over the network
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    ${name} shares a keyboard, mouse, and clipboard over the network.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    It supports multiple operating systems, including macOS,\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Linux, FreeBSD, OpenBSD, and Windows. It is a fork of barrier,\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    which in turn is a fork of synergy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  c6da02aaf782727da7cfd62f2fc11eac41da3834 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  9f893bfa8719a62acb7f7012847a40988d5ab6ec8f75e78881d68988a96ea4e0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    5171389
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          set-cmake-revision.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    remove-gtest.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args      -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2014
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:gtest \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:ghc-filesystem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DINPUTLEAP_BUILD_INSTALLER=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DINPUTLEAP_BUILD_TESTS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[variant_isset debug]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    cmake.build_type    Debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.optflags  -O0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    cmake.build_type    RelWithDebInfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Clear optflags for non-debug build; controlled by project
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.optflags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the gui requires metal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < 16} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DINPUTLEAP_BUILD_GUI=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup           qt5 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup           app 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    qt5.depends_component \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        qttools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.create yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.icon   dist/macos/bundle/InputLeap.app/Contents/Resources/InputLeap.icns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.retina yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset debug]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Save debug symbols for a debug build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system -W ${destroot}${prefix} "find ./bin -type f -perm -111 -exec dsymutil {} +"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 -W ${worksrcpath}/doc input-leapc.1 input-leaps.1 ${destroot}${prefix}/share/man/man1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 -W ${worksrcpath}/doc/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            input-leap.conf.example \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            input-leap.conf.example-advanced \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            input-leap.conf.example-barebones \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            input-leap.conf.example-basic \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/input-leap/files/macOS-add-support-for-right-side-modifier-keys.patch b/aqua/input-leap/files/macOS-add-support-for-right-side-modifier-keys.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3adb4ae21b0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/input-leap/files/macOS-add-support-for-right-side-modifier-keys.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,202 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/platform/OSXKeyState.cpp b/src/lib/platform/OSXKeyState.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index afcac51d..a932716a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/platform/OSXKeyState.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/platform/OSXKeyState.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,17 +28,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace inputleap {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// Note that some virtual keys codes appear more than once.  The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// first instance of a virtual key code maps to the KeyID that we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// want to generate for that code.  The others are for mapping
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// different KeyIDs to a single key code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const std::uint32_t s_shiftVK = kVK_Shift;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const std::uint32_t s_controlVK = kVK_Control;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const std::uint32_t s_altVK = kVK_Option;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const std::uint32_t s_superVK = kVK_Command;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const std::uint32_t s_capsLockVK = kVK_CapsLock;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const std::uint32_t s_numLockVK = kVK_ANSI_KeypadClear; // 71
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const std::uint32_t s_brightnessUp = 144;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const std::uint32_t s_brightnessDown = 145;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const std::uint32_t s_missionControlVK = 160;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -108,22 +97,21 @@ static const KeyEntry    s_controlKeys[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // to map to.  also the enter key with numlock on is a modifier but i
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // don't know which.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // modifier keys.  OS X doesn't seem to support right handed versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // of modifier keys so we map them to the left handed versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyShift_L,        s_shiftVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyShift_R,        s_shiftVK }, // 60
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyControl_L,    s_controlVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyControl_R,    s_controlVK }, // 62
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyAlt_L,        s_altVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyAlt_R,        s_altVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeySuper_L,        s_superVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeySuper_R,        s_superVK }, // 61
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyMeta_L,        s_superVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyMeta_R,        s_superVK }, // 61
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // modifier keys. Support for right side keys is a later addition in macOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyShift_L,          kVK_Shift },        // 56
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyShift_R,          kVK_RightShift },   // 60
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyControl_L,        kVK_Control },      // 59
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyControl_R,        kVK_RightControl }, // 62
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyAlt_L,            kVK_Option },       // 58
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyAlt_R,            kVK_RightOption },  // 61
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeySuper_L,          kVK_Command },      // 55
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeySuper_R,          kVK_RightCommand }, // 54
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyMeta_L,           kVK_Command },      // 55
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyMeta_R,           kVK_RightCommand }, // 54
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // toggle modifiers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyNumLock,        s_numLockVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    { kKeyCapsLock,        s_capsLockVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyNumLock,        kVK_ANSI_KeypadClear },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { kKeyCapsLock,        kVK_CapsLock },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { kKeyMissionControl, s_missionControlVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { kKeyLaunchpad, s_launchpadVK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -521,30 +509,50 @@ void OSXKeyState::postHIDVirtualKey(const std::uint8_t virtualKeyCode, const boo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     switch (virtualKeyCode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case s_shiftVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case s_superVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case s_altVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case s_controlVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case s_capsLockVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_Shift:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_RightShift:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_Command:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_RightCommand:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_Option:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_RightOption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_Control:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_RightControl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case kVK_CapsLock:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         switch (virtualKeyCode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        case s_shiftVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_Shift:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 modifiersDelta = NX_SHIFTMASK | NX_DEVICELSHIFTKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 m_shiftPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        case s_superVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_RightShift:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                modifiersDelta = NX_SHIFTMASK | NX_DEVICERSHIFTKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                m_shiftPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_Command:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 modifiersDelta = NX_COMMANDMASK | NX_DEVICELCMDKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 m_superPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        case s_altVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_RightCommand:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                modifiersDelta = NX_COMMANDMASK | NX_DEVICERCMDKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                m_superPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_Option:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 modifiersDelta = NX_ALTERNATEMASK | NX_DEVICELALTKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 m_altPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        case s_controlVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_RightOption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                modifiersDelta = NX_ALTERNATEMASK | NX_DEVICERALTKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                m_altPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_Control:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 modifiersDelta = NX_CONTROLMASK | NX_DEVICELCTLKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 m_controlPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        case s_capsLockVK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_RightControl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                modifiersDelta = NX_CONTROLMASK | NX_DEVICERCTLKEYMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                m_controlPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case kVK_CapsLock:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 modifiersDelta = NX_ALPHASHIFTMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 m_capsPressed = postDown;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -794,7 +802,7 @@ bool OSXKeyState::map_hot_key_to_mac(KeyID key, KeyModifierMask mask,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void OSXKeyState::handleModifierKeys(const EventTarget* target,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void OSXKeyState::handleModifierKeys(const EventTarget* target, std::uint32_t virtualKey,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                      KeyModifierMask oldMask, KeyModifierMask newMask)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // compute changed modifiers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -802,27 +810,27 @@ void OSXKeyState::handleModifierKeys(const EventTarget* target,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // synthesize changed modifier keys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ((changed & KeyModifierShift) != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        handleModifierKey(target, s_shiftVK, kKeyShift_L,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        handleModifierKey(target, virtualKey, m_virtualKeyMap.find(virtualKey)->second,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             (newMask & KeyModifierShift) != 0, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ((changed & KeyModifierControl) != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        handleModifierKey(target, s_controlVK, kKeyControl_L,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        handleModifierKey(target, virtualKey, m_virtualKeyMap.find(virtualKey)->second,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             (newMask & KeyModifierControl) != 0, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ((changed & KeyModifierAlt) != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        handleModifierKey(target, s_altVK, kKeyAlt_L,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        handleModifierKey(target, virtualKey, m_virtualKeyMap.find(virtualKey)->second,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             (newMask & KeyModifierAlt) != 0, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ((changed & KeyModifierSuper) != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        handleModifierKey(target, s_superVK, kKeySuper_L,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        handleModifierKey(target, virtualKey, m_virtualKeyMap.find(virtualKey)->second,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             (newMask & KeyModifierSuper) != 0, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ((changed & KeyModifierCapsLock) != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        handleModifierKey(target, s_capsLockVK, kKeyCapsLock,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        handleModifierKey(target, virtualKey, m_virtualKeyMap.find(virtualKey)->second,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             (newMask & KeyModifierCapsLock) != 0, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ((changed & KeyModifierNumLock) != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        handleModifierKey(target, s_numLockVK, kKeyNumLock,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        handleModifierKey(target, virtualKey, m_virtualKeyMap.find(virtualKey)->second,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             (newMask & KeyModifierNumLock) != 0, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/platform/OSXKeyState.h b/src/lib/platform/OSXKeyState.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2288d9ce..df0ae3a4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/platform/OSXKeyState.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/platform/OSXKeyState.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +51,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Determines which modifier keys have changed and updates the modifier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     state and sends key events as appropriate.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    void handleModifierKeys(const EventTarget* target,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void handleModifierKeys(const EventTarget* target, std::uint32_t virtualKey,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             KeyModifierMask oldMask, KeyModifierMask newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     //@}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/platform/OSXScreen.mm b/src/lib/platform/OSXScreen.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 214a6958..c8c74abd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/platform/OSXScreen.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/platform/OSXScreen.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1193,7 +1193,7 @@ OSXScreen::onKey(CGEventRef event)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // get old and new modifier state
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           KeyModifierMask oldMask = getActiveModifiers();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           KeyModifierMask newMask = m_keyState->mapModifiersFromOSX(macMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        m_keyState->handleModifierKeys(get_event_target(), oldMask, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        m_keyState->handleModifierKeys(get_event_target(), virtualKey, oldMask, newMask);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // if the current set of modifiers exactly matches a modifiers-only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // hot key then generate a hot key down event.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/platform/OSXUchrKeyResource.cpp b/src/lib/platform/OSXUchrKeyResource.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e4b87b65..b38082d5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/platform/OSXUchrKeyResource.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/platform/OSXUchrKeyResource.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,8 +97,7 @@ OSXUchrKeyResource::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::uint32_t OSXUchrKeyResource::getNumModifierCombinations() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // only 32 (not 256) because the righthanded modifier bits are ignored
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return 32;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 256;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::uint32_t OSXUchrKeyResource::getNumTables() const
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/input-leap/files/remove-gtest.patch b/aqua/input-leap/files/remove-gtest.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c8b9eaaf47b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/input-leap/files/remove-gtest.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c62d96f1..1481b5c2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,8 +26,6 @@ if (WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_subdirectory(daemon)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-include(../cmake/gtest.cmake)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(INPUTLEAP_BUILD_TESTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_subdirectory(test/integtests)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     add_subdirectory(test/unittests)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/input-leap/files/set-cmake-revision.patch b/aqua/input-leap/files/set-cmake-revision.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4701565abc8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/input-leap/files/set-cmake-revision.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/cmake/Version.cmake b/cmake/Version.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 907e2fa0..84eb35d2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/cmake/Version.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/cmake/Version.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,8 @@ cmake_minimum_required (VERSION 3.4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(INPUTLEAP_VERSION_MAJOR 2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(INPUTLEAP_VERSION_MINOR 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(INPUTLEAP_VERSION_PATCH 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(INPUTLEAP_VERSION_STAGE "release")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(INPUTLEAP_VERSION_STAGE "git")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(INPUTLEAP_REVISION "00000000")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # InputLeap Version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(NOT DEFINED INPUTLEAP_VERSION_MAJOR)
</span></pre><pre style='margin:0'>

</pre>