<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>