This repository has been archived by the owner. It is now read-only.
Permalink
...
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Open a pull request
18
contributors
Unified
Split
Showing
with
406 additions
and 509 deletions.
- +2 −0 .github/ISSUE_TEMPLATE.md
- +1 −6 CMakeLists.txt
- +28 −0 ChangeLog
- +3 −3 doc/MacReadme.txt
- +27 −8 ext/toolchain/commands1.py
- +0 −15 res/dpiaware.manifest
- +0 −9 src/cmd/synergyc/CMakeLists.txt
- +0 −9 src/cmd/synergyd/CMakeLists.txt
- +0 −9 src/cmd/synergys/CMakeLists.txt
- +3 −1 src/gui/res/SettingsDialogBase.ui
- +2 −2 src/gui/res/lang/Languages.xml
- +26 −18 src/gui/res/mac/Info.plist
- +2 −1 src/gui/src/ActivationDialog.cpp
- +1 −1 src/gui/src/AppConfig.cpp
- +10 −4 src/gui/src/LicenseManager.cpp
- +2 −1 src/gui/src/LicenseManager.h
- +0 −19 src/gui/src/MainWindow.cpp
- +4 −3 src/gui/src/main.cpp
- +3 −1 src/lib/arch/unix/ArchDaemonUnix.cpp
- +1 −1 src/lib/arch/unix/ArchSystemUnix.cpp
- +1 −1 src/lib/ipc/IpcClientProxy.cpp
- +1 −1 src/lib/ipc/IpcServerProxy.cpp
- +24 −12 src/lib/platform/MSWindowsKeyState.cpp
- +1 −1 src/lib/platform/MSWindowsKeyState.h
- +16 −64 src/lib/platform/MSWindowsScreen.cpp
- +0 −7 src/lib/platform/MSWindowsScreen.h
- +103 −65 src/lib/platform/OSXKeyState.cpp
- +6 −0 src/lib/platform/OSXKeyState.h
- +17 −1 src/lib/platform/OSXScreen.mm
- +5 −24 src/lib/platform/XWindowsScreen.cpp
- +2 −2 src/lib/server/Config.cpp
- +44 −39 src/lib/server/Server.cpp
- +20 −13 src/lib/synergy/ArgParser.cpp
- +1 −1 src/lib/synergy/ClipboardChunk.cpp
- +0 −53 src/lib/synergy/DpiHelper.cpp
- +0 −38 src/lib/synergy/DpiHelper.h
- +4 −2 src/lib/synergy/key_types.h
- +1 −1 src/micro/uSynergy.h
- +15 −0 src/setup/win32/Product.wxs
- +21 −0 src/test/integtests/platform/MSWindowsKeyStateTests.cpp
- +9 −3 src/test/unittests/synergy/ClipboardChunkTests.cpp
- +0 −70 src/test/unittests/synergy/DpiHelperTests.cpp
View
2
.github/ISSUE_TEMPLATE.md
| @@ -27,4 +27,6 @@ Client: Applesoft Windy OS 10 | ||
| * Is there a way to work around it? No/Yes, you can... | ||
| * Does this bug prevent you from using Synergy entirely? Yes/No | ||
| +Please follow the link below to send us logs from both your server and client sides if it's appropriate. https://github.com/symless/synergy/wiki/Sending-logs | ||
| + | ||
| Put anything else you can think of here. | ||
View
7
CMakeLists.txt
| @@ -17,7 +17,7 @@ | ||
| # Version number for Synergy | ||
| set(VERSION_MAJOR 1) | ||
| set(VERSION_MINOR 8) | ||
| -set(VERSION_REV 5) | ||
| +set(VERSION_REV 8) | ||
| set(VERSION_STAGE stable) | ||
| set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REV}") | ||
| @@ -74,11 +74,6 @@ endif() | ||
| # Depending on the platform, pass in the required defines. | ||
| if (UNIX) | ||
| - | ||
| - # warnings as errors: | ||
| - # we have a problem with people checking in code with warnings. | ||
| - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-unused-local-typedef") | ||
| - | ||
| if (NOT APPLE) | ||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") | ||
| endif() | ||
View
28
ChangeLog
| @@ -1,3 +1,31 @@ | ||
| +v1.8.8 | ||
| +========== | ||
| +Bug #5196 - Some keys on Korean and Japanese keyboards have the same keycode | ||
| +Bug #5578 - Pressing Hangul key results in alt+'a' | ||
| +Bug #5785 - Can't switch screens when cursor is in a corner | ||
| +Bug #3992 - macOS: Dragging is broken in Unity 3D | ||
| +Bug #5075 - macOS: Build fails on macOS 10.9 due to unknown compiler flag | ||
| +Bug #5809 - macOS: No version number is shown in the App Info dialog | ||
| +Bug #3197 - Linux: switchDoubleTap option is not working | ||
| +Bug #4477 - Linux: Mouse buttons higher than id 10 result in crash | ||
| +Bug #5832 - Linux: Screen size misdetected on multi-monitor display | ||
| +Enhancement #4504 - Improved Korean language description | ||
| +Enhancement #5525 - Added support for precise screen positioning in config file | ||
| +Enhancement #4290 - Windows: Removed annoying alt+print screen functionality | ||
| + | ||
| +v1.8.7-stable | ||
| +============= | ||
| +Bug #5784 - Edition changes when reopening GUI | ||
| + | ||
| +v1.8.6-stable | ||
| +============= | ||
| +Bug #5592 - Some keys don't work for macOS Sierra clients | ||
| +Bug #5186 - Cursor stuck on client when using multi-DPI server | ||
| +Bug #5722 - Malformed serial key in registry will crash GUI on startup | ||
| +Bug #5752 - Tab order is incorrect on Settings dialog | ||
| +Enhancement #5699 - Unified installers on macOS | ||
| +Feature #4836 - macOS Sierra build | ||
| + | ||
| v1.8.5-stable | ||
| ============= | ||
| Bug #5680 - Server crashes when disconnecting SSL clients | ||
View
6
doc/MacReadme.txt
| @@ -5,10 +5,10 @@ To install on Mac OS X with the .zip distribution (first seen in 1.3.6) you must | ||
| 1. Extract the zip file to any location (usually double click will do this) | ||
| 2. Open Terminal, and cd to the extracted directory (e.g. /Users/my-name/Downloads/extracted-dir/) | ||
| - 3. Change to super user (use the su command) | ||
| - 4. Copy the binaries to /usr/bin using: cp synergy* /usr/bin | ||
| + 3. Copy the binaries to /usr/bin using: sudo cp synergy* /usr/bin | ||
| + 4. Correct the permissions and ownership: sudo chown root:wheel /usr/bin/synergy*; sudo chmod 555 /usr/bin/synergy* | ||
| -How to enable the root user in Mac OS X: | ||
| +Alternatively, you can copy the binaries as root. How to enable the root user in Mac OS X: | ||
| http://support.apple.com/en-us/ht1528 | ||
| Once the binaries have been copied to /usr/bin, you should follow the configuration guide: | ||
View
35
ext/toolchain/commands1.py
| @@ -41,7 +41,7 @@ class Toolchain: | ||
| cmd_opt_dict = { | ||
| 'about' : ['', []], | ||
| 'setup' : ['g:', ['generator=']], | ||
| - 'configure' : ['g:dr', ['generator=', 'debug', 'release', 'mac-sdk=', 'mac-identity=']], | ||
| + 'configure' : ['g:dr', ['generator=', 'debug', 'release', 'mac-sdk=', 'mac-deploy=', 'mac-identity=']], | ||
| 'build' : ['dr', ['debug', 'release']], | ||
| 'clean' : ['dr', ['debug', 'release']], | ||
| 'update' : ['', []], | ||
| @@ -244,6 +244,9 @@ class InternalCommands: | ||
| # by default, unknown | ||
| macSdk = None | ||
| + # by default, unknown | ||
| + macDeploy = None | ||
| + | ||
| # by default, unknown | ||
| macIdentity = None | ||
| @@ -306,7 +309,7 @@ def usage(self): | ||
| ' genlist Shows the list of available platform generators\n' | ||
| ' usage Shows the help screen\n' | ||
| '\n' | ||
| - 'Example: %s build -g 3' | ||
| + 'Example: %s conf -g 3' | ||
| ) % (app, app) | ||
| def configureAll(self, targets, extraArgs=''): | ||
| @@ -365,7 +368,7 @@ def configure(self, target='', extraArgs=''): | ||
| # ensure latest setup and do not ask config for generator (only fall | ||
| # back to prompt if not specified as arg) | ||
| self.ensure_setup_latest() | ||
| - | ||
| + | ||
| if sys.platform == "darwin": | ||
| config = self.getConfig() | ||
| @@ -374,6 +377,11 @@ def configure(self, target='', extraArgs=''): | ||
| elif config.has_option("hm", "macSdk"): | ||
| self.macSdk = config.get('hm', 'macSdk') | ||
| + if self.macDeploy: | ||
| + config.set('hm', 'macDeploy', self.macDeploy) | ||
| + elif config.has_option("hm", "macDeploy"): | ||
| + self.macSdk = config.get('hm', 'macDeploy') | ||
| + | ||
| if self.macIdentity: | ||
| config.set('hm', 'macIdentity', self.macIdentity) | ||
| elif config.has_option("hm", "macIdentity"): | ||
| @@ -383,7 +391,10 @@ def configure(self, target='', extraArgs=''): | ||
| if not self.macSdk: | ||
| raise Exception("Arg missing: --mac-sdk <version>"); | ||
| - | ||
| + | ||
| + if not self.macDeploy: | ||
| + self.macDeploy = self.macSdk | ||
| + | ||
| if not self.macIdentity: | ||
| raise Exception("Arg missing: --mac-identity <name>"); | ||
| @@ -438,7 +449,7 @@ def configureCore(self, target="", extraArgs=""): | ||
| if generator.cmakeName.find('Unix Makefiles') == -1: | ||
| sdkDir = self.getMacSdkDir() | ||
| cmake_args += " -DCMAKE_OSX_SYSROOT=" + sdkDir | ||
| - cmake_args += " -DCMAKE_OSX_DEPLOYMENT_TARGET=" + self.macSdk | ||
| + cmake_args += " -DCMAKE_OSX_DEPLOYMENT_TARGET=" + self.macDeploy | ||
| cmake_args += " -DOSX_TARGET_MAJOR=" + macSdkMatch.group(1) | ||
| cmake_args += " -DOSX_TARGET_MINOR=" + macSdkMatch.group(2) | ||
| @@ -498,8 +509,8 @@ def configureGui(self, target="", extraArgs=""): | ||
| sdkDir = self.getMacSdkDir() | ||
| shortForm = "macosx" + self.macSdk | ||
| version = str(major) + "." + str(minor) | ||
| - | ||
| - qmake_cmd_string += " QMAKE_MACOSX_DEPLOYMENT_TARGET=" + version | ||
| + | ||
| + qmake_cmd_string += " QMAKE_MACOSX_DEPLOYMENT_TARGET=" + self.macDeploy | ||
| (qMajor, qMinor, qRev) = self.getQmakeVersion() | ||
| if qMajor <= 4: | ||
| @@ -656,6 +667,9 @@ def loadConfig(self): | ||
| if config.has_option("hm", "macSdk"): | ||
| self.macSdk = config.get("hm", "macSdk") | ||
| + | ||
| + if config.has_option("hm", "macDeploy"): | ||
| + self.macDeploy = config.get("hm", "macDeploy") | ||
| if config.has_option("hm", "macIdentity"): | ||
| self.macIdentity = config.get("hm", "macIdentity") | ||
| @@ -1843,7 +1857,10 @@ def getMacPackageName(self): | ||
| # version is major and minor with no dots (e.g. 106) | ||
| version = str(major) + str(minor) | ||
| - return "MacOSX%s-%s" % (version, arch) | ||
| + if (self.macDeploy == self.macSdk): | ||
| + return "MacOSX%s-%s" % (version, arch) | ||
| + else: | ||
| + return "MacOSX-%s" % arch | ||
| def reset(self): | ||
| if os.path.exists('build'): | ||
| @@ -1898,6 +1915,8 @@ def __init__(self, argv, opts, args, verbose): | ||
| self.qtDir = a | ||
| elif o == '--mac-sdk': | ||
| self.ic.macSdk = a | ||
| + elif o == '--mac-deploy': | ||
| + self.ic.macDeploy = a | ||
| elif o == '--mac-identity': | ||
| self.ic.macIdentity = a | ||
View
15
res/dpiaware.manifest
| @@ -1,15 +0,0 @@ | ||
| -<?xml version="1.0" encoding="UTF-8"?> | ||
| -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0"> | ||
| - <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> | ||
| - <application> | ||
| - <!-- Windows 7 --> | ||
| - <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" /> | ||
| - </application> | ||
| - </compatibility> | ||
| - <asmv3:application> | ||
| - <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> | ||
| - <dpiAware>true</dpiAware> | ||
| - </asmv3:windowsSettings> | ||
| - </asmv3:application> | ||
| -</assembly> | ||
| - |
View
9
src/cmd/synergyc/CMakeLists.txt
| @@ -60,15 +60,6 @@ add_executable(synergyc ${sources}) | ||
| target_link_libraries(synergyc | ||
| arch base client common io mt net ipc platform server synergy ${libs} ${OPENSSL_LIBS}) | ||
| -if (WIN32) | ||
| - ADD_CUSTOM_COMMAND( | ||
| - TARGET synergyc | ||
| - POST_BUILD | ||
| - COMMAND "mt.exe" -manifest \"${CMAKE_SOURCE_DIR}\\res\\dpiaware.manifest\" -inputresource:\"$<TARGET_FILE:synergyc>\"\;\#1 -outputresource:\"$<TARGET_FILE:synergyc>\"\;\#1 | ||
| - COMMENT "Adding display aware manifest..." | ||
| - ) | ||
| -endif() | ||
| - | ||
| if (CONF_CPACK) | ||
| install(TARGETS | ||
| synergyc | ||
View
9
src/cmd/synergyd/CMakeLists.txt
| @@ -37,15 +37,6 @@ endif() | ||
| target_link_libraries(synergyd | ||
| arch base common io ipc mt net platform synergy shared ${libs} ${OPENSSL_LIBS}) | ||
| -if (WIN32) | ||
| - ADD_CUSTOM_COMMAND( | ||
| - TARGET synergyd | ||
| - POST_BUILD | ||
| - COMMAND "mt.exe" -manifest \"${CMAKE_SOURCE_DIR}\\res\\dpiaware.manifest\" -inputresource:\"$<TARGET_FILE:synergyd>\"\;\#1 -outputresource:\"$<TARGET_FILE:synergyd>\"\;\#1 | ||
| - COMMENT "Adding display aware manifest..." | ||
| - ) | ||
| -endif() | ||
| - | ||
| if (CONF_CPACK) | ||
| install(TARGETS | ||
| synergyd | ||
View
9
src/cmd/synergys/CMakeLists.txt
| @@ -60,15 +60,6 @@ add_executable(synergys ${sources}) | ||
| target_link_libraries(synergys | ||
| arch base client common io mt net ipc platform server synergy ${libs} ${OPENSSL_LIBS}) | ||
| -if (WIN32) | ||
| - ADD_CUSTOM_COMMAND( | ||
| - TARGET synergys | ||
| - POST_BUILD | ||
| - COMMAND "mt.exe" -manifest \"${CMAKE_SOURCE_DIR}\\res\\dpiaware.manifest\" -inputresource:\"$<TARGET_FILE:synergys>\"\;\#1 -outputresource:\"$<TARGET_FILE:synergys>\"\;\#1 | ||
| - COMMENT "Adding display aware manifest..." | ||
| - ) | ||
| -endif() | ||
| - | ||
| if (CONF_CPACK) | ||
| install(TARGETS | ||
| synergys | ||
View
4
src/gui/res/SettingsDialogBase.ui
| @@ -330,11 +330,13 @@ | ||
| <tabstop>m_pLineEditScreenName</tabstop> | ||
| <tabstop>m_pSpinBoxPort</tabstop> | ||
| <tabstop>m_pLineEditInterface</tabstop> | ||
| + <tabstop>m_pComboElevate</tabstop> | ||
| + <tabstop>m_pCheckBoxAutoHide</tabstop> | ||
| + <tabstop>m_pCheckBoxEnableCrypto</tabstop> | ||
| <tabstop>m_pComboLogLevel</tabstop> | ||
| <tabstop>m_pCheckBoxLogToFile</tabstop> | ||
| <tabstop>m_pLineEditLogFilename</tabstop> | ||
| <tabstop>m_pButtonBrowseLog</tabstop> | ||
| - <tabstop>buttonBox</tabstop> | ||
| </tabstops> | ||
| <resources/> | ||
| <connections> | ||
View
4
src/gui/res/lang/Languages.xml
| @@ -36,11 +36,11 @@ | ||
| <language ietfCode="ar" name="العربية" /> | ||
| <language ietfCode="pes-IR" name="فارسی" /> | ||
| <language ietfCode="ur" name="اردو" /> | ||
| - <language ietfCode="mr" name="मराठी" /> | ||
| + <language ietfCode="mr" name="मराठी" /> | ||
| <language ietfCode="si" name="Sඉන්හල" /> | ||
| <language ietfCode="th-TH" name="ภาษาไทย" /> | ||
| <language ietfCode="zh-CN" name="中文 (简体)" /> | ||
| <language ietfCode="zh-TW" name="中文 (繁體)" /> | ||
| <language ietfCode="ja-JP" name="日本語" /> | ||
| - <language ietfCode="ko" name="한국의" /> | ||
| + <language ietfCode="ko" name="한국어" /> | ||
| </languages> | ||
View
44
src/gui/res/mac/Info.plist
| @@ -1,20 +1,28 @@ | ||
| -<?xml version="1.0" encoding="UTF-8"?> | ||
| -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| <plist version="1.0"> | ||
| -<dict> | ||
| - <key>CFBundleInfoDictionaryVersion</key> | ||
| - <string>6.0</string> | ||
| - <key>NSPrincipalClass</key> | ||
| - <string>NSApplication</string> | ||
| - <key>CFBundleIconFile</key> | ||
| - <string>Synergy.icns</string> | ||
| - <key>CFBundlePackageType</key> | ||
| - <string>APPL</string> | ||
| - <key>CFBundleSignature</key> | ||
| - <string>????</string> | ||
| - <key>CFBundleExecutable</key> | ||
| - <string>Synergy</string> | ||
| - <key>CFBundleIdentifier</key> | ||
| - <string>synergy</string> | ||
| -</dict> | ||
| + <dict> | ||
| + <key>CFBundleDevelopmentRegion</key> | ||
| + <string>English</string> | ||
| + <key>CFBundleDisplayName</key> | ||
| + <string>Synergy</string> | ||
| + <key>CFBundleExecutable</key> | ||
| + <string>Synergy</string> | ||
| + <key>CFBundleIconFile</key> | ||
| + <string>Synergy.icns</string> | ||
| + <key>CFBundleIdentifier</key> | ||
| + <string>synergy</string> | ||
| + <!-- TODO: Fix this in v2.0 //--> | ||
| + <key>CFBundleInfoDictionaryVersion</key> | ||
| + <string>6.0</string> | ||
| + <key>CFBundleName</key> | ||
| + <string>Synergy</string> | ||
| + <key>CFBundlePackageType</key> | ||
| + <string>APPL</string> | ||
| + <key>CFBundleShortVersionString</key> | ||
| + <string>1.8.8</string> | ||
| + <key>CFBundleVersion</key> | ||
| + <string>1.8.8</string> | ||
| + <key>NSHumanReadableCopyright</key> | ||
| + <string>© 2012-2016, Symless Ltd</string> | ||
| + </dict> | ||
| </plist> |
View
3
src/gui/src/ActivationDialog.cpp
| @@ -71,7 +71,8 @@ void ActivationDialog::accept() | ||
| std::pair<bool, QString> result; | ||
| try { | ||
| - QString serialKey = ui->m_pTextEditSerialKey->toPlainText().trimmed(); | ||
| + SerialKey serialKey (ui->m_pTextEditSerialKey->toPlainText(). | ||
| + trimmed().toStdString()); | ||
| result = m_LicenseManager->setSerialKey(serialKey); | ||
| } | ||
| catch (std::exception& e) { | ||
View
2
src/gui/src/AppConfig.cpp
| @@ -161,7 +161,7 @@ void AppConfig::loadSettings() | ||
| m_ActivateEmail = settings().value("activateEmail", "").toString(); | ||
| m_CryptoEnabled = settings().value("cryptoEnabled", true).toBool(); | ||
| m_AutoHide = settings().value("autoHide", false).toBool(); | ||
| - m_Serialkey = settings().value("serialKey", "").toString(); | ||
| + m_Serialkey = settings().value("serialKey", "").toString().trimmed(); | ||
| m_lastVersion = settings().value("lastVersion", "Unknown").toString(); | ||
| m_LastExpiringWarningTime = settings().value("lastExpiringWarningTime", 0).toInt(); | ||
| m_ActivationHasRun = settings().value("activationHasRun", false).toBool(); | ||
View
14
src/gui/src/LicenseManager.cpp
| @@ -29,11 +29,10 @@ LicenseManager::LicenseManager(AppConfig* appConfig) : | ||
| } | ||
| std::pair<bool, QString> | ||
| -LicenseManager::setSerialKey(QString serialKeyString, bool acceptExpired) | ||
| +LicenseManager::setSerialKey(SerialKey serialKey, bool acceptExpired) | ||
| { | ||
| std::pair<bool, QString> ret (true, ""); | ||
| time_t currentTime = ::time(0); | ||
| - SerialKey serialKey (serialKeyString.toStdString()); | ||
| if (!acceptExpired && serialKey.isExpired(currentTime)) { | ||
| ret.first = false; | ||
| @@ -44,7 +43,8 @@ LicenseManager::setSerialKey(QString serialKeyString, bool acceptExpired) | ||
| if (serialKey != m_serialKey) { | ||
| using std::swap; | ||
| swap (serialKey, m_serialKey); | ||
| - m_AppConfig->setSerialKey(serialKeyString); | ||
| + m_AppConfig->setSerialKey(QString::fromStdString | ||
| + (m_serialKey.toString())); | ||
| emit serialKeyChanged(m_serialKey); | ||
| if (serialKey.isTrial()) { | ||
| @@ -114,7 +114,13 @@ LicenseManager::serialKey() const | ||
| void LicenseManager::refresh() | ||
| { | ||
| if (!m_AppConfig->serialKey().isEmpty()) { | ||
| - setSerialKey(m_AppConfig->serialKey(), true); | ||
| + try { | ||
| + SerialKey serialKey (m_AppConfig->serialKey().toStdString()); | ||
| + setSerialKey(serialKey, true); | ||
| + } catch (...) { | ||
| + m_AppConfig->clearSerialKey(); | ||
| + m_AppConfig->saveSettings(); | ||
| + } | ||
| } | ||
| if (m_serialKey.isExpired(::time(0))) { | ||
| emit endTrial(true); | ||
View
3
src/gui/src/LicenseManager.h
| @@ -30,7 +30,8 @@ class LicenseManager: public QObject | ||
| public: | ||
| LicenseManager(AppConfig* appConfig); | ||
| - std::pair<bool, QString> setSerialKey(QString serialKey, bool acceptExpired = false); | ||
| + std::pair<bool, QString> setSerialKey(SerialKey serialKey, | ||
| + bool acceptExpired = false); | ||
| void refresh(); | ||
| Edition activeEdition() const; | ||
| QString activeEditionName() const; | ||
Oops, something went wrong.