1.3 merge r870 into trunk and 1.4
This commit is contained in:
parent
4496f36a80
commit
bac6e971e3
|
@ -73,6 +73,12 @@ CGlobalOptions::init(HWND hwnd)
|
||||||
setItemChecked(child, false);
|
setItemChecked(child, false);
|
||||||
child = getItem(hwnd, IDC_GLOBAL_TWO_TAP_TIME);
|
child = getItem(hwnd, IDC_GLOBAL_TWO_TAP_TIME);
|
||||||
setWindowText(child, buffer);
|
setWindowText(child, buffer);
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_SHIFT);
|
||||||
|
setItemChecked(child, false);
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_CONTROL);
|
||||||
|
setItemChecked(child, false);
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_ALT);
|
||||||
|
setItemChecked(child, false);
|
||||||
sprintf(buffer, "%d", m_heartbeatTime);
|
sprintf(buffer, "%d", m_heartbeatTime);
|
||||||
child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_CHECK);
|
child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_CHECK);
|
||||||
setItemChecked(child, false);
|
setItemChecked(child, false);
|
||||||
|
@ -110,6 +116,18 @@ CGlobalOptions::init(HWND hwnd)
|
||||||
setWindowText(child, buffer);
|
setWindowText(child, buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (id == kOptionScreenSwitchNeedsShift) {
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_SHIFT);
|
||||||
|
setItemChecked(child, (value != 0));
|
||||||
|
}
|
||||||
|
else if (id == kOptionScreenSwitchNeedsControl) {
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_CONTROL);
|
||||||
|
setItemChecked(child, (value != 0));
|
||||||
|
}
|
||||||
|
else if (id == kOptionScreenSwitchNeedsAlt) {
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_ALT);
|
||||||
|
setItemChecked(child, (value != 0));
|
||||||
|
}
|
||||||
else if (id == kOptionHeartbeat) {
|
else if (id == kOptionHeartbeat) {
|
||||||
if (value > 0) {
|
if (value > 0) {
|
||||||
sprintf(buffer, "%d", value);
|
sprintf(buffer, "%d", value);
|
||||||
|
@ -197,6 +215,9 @@ CGlobalOptions::save(HWND hwnd)
|
||||||
m_config->removeOption("", kOptionScreenSaverSync);
|
m_config->removeOption("", kOptionScreenSaverSync);
|
||||||
m_config->removeOption("", kOptionRelativeMouseMoves);
|
m_config->removeOption("", kOptionRelativeMouseMoves);
|
||||||
m_config->removeOption("", kOptionWin32KeepForeground);
|
m_config->removeOption("", kOptionWin32KeepForeground);
|
||||||
|
m_config->removeOption("", kOptionScreenSwitchNeedsAlt);
|
||||||
|
m_config->removeOption("", kOptionScreenSwitchNeedsShift);
|
||||||
|
m_config->removeOption("", kOptionScreenSwitchNeedsControl);
|
||||||
|
|
||||||
// add requested options
|
// add requested options
|
||||||
child = getItem(hwnd, IDC_GLOBAL_DELAY_CHECK);
|
child = getItem(hwnd, IDC_GLOBAL_DELAY_CHECK);
|
||||||
|
@ -207,6 +228,18 @@ CGlobalOptions::save(HWND hwnd)
|
||||||
if (isItemChecked(child)) {
|
if (isItemChecked(child)) {
|
||||||
m_config->addOption("", kOptionScreenSwitchTwoTap, newTwoTapTime);
|
m_config->addOption("", kOptionScreenSwitchTwoTap, newTwoTapTime);
|
||||||
}
|
}
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_SHIFT);
|
||||||
|
if (isItemChecked(child)) {
|
||||||
|
m_config->addOption("", kOptionScreenSwitchNeedsShift, 1);
|
||||||
|
}
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_CONTROL);
|
||||||
|
if (isItemChecked(child)) {
|
||||||
|
m_config->addOption("", kOptionScreenSwitchNeedsControl, 1);
|
||||||
|
}
|
||||||
|
child = getItem(hwnd, IDC_GLOBAL_NEEDS_ALT);
|
||||||
|
if (isItemChecked(child)) {
|
||||||
|
m_config->addOption("", kOptionScreenSwitchNeedsAlt, 1);
|
||||||
|
}
|
||||||
child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_CHECK);
|
child = getItem(hwnd, IDC_GLOBAL_HEARTBEAT_CHECK);
|
||||||
if (isItemChecked(child)) {
|
if (isItemChecked(child)) {
|
||||||
m_config->addOption("", kOptionHeartbeat, newHeartbeatTime);
|
m_config->addOption("", kOptionHeartbeat, newHeartbeatTime);
|
||||||
|
|
|
@ -174,7 +174,7 @@ BEGIN
|
||||||
IDC_STATIC,7,43,181,17
|
IDC_STATIC,7,43,181,17
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_GLOBAL_OPTIONS DIALOG DISCARDABLE 0, 0, 207, 290
|
IDD_GLOBAL_OPTIONS DIALOG DISCARDABLE 0, 0, 207, 354
|
||||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Options"
|
CAPTION "Options"
|
||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Sans Serif"
|
||||||
|
@ -195,26 +195,35 @@ BEGIN
|
||||||
EDITTEXT IDC_GLOBAL_TWO_TAP_TIME,112,98,45,12,ES_AUTOHSCROLL |
|
EDITTEXT IDC_GLOBAL_TWO_TAP_TIME,112,98,45,12,ES_AUTOHSCROLL |
|
||||||
ES_NUMBER
|
ES_NUMBER
|
||||||
LTEXT "ms",IDC_STATIC,159,100,10,8
|
LTEXT "ms",IDC_STATIC,159,100,10,8
|
||||||
LTEXT "Synergy can periodically check that clients are still alive and connected. Use this only if synergy doesn't detect when clients disconnect.",
|
LTEXT "Synergy can be restricted to switch only if certain modifiers are pressed.",
|
||||||
IDC_STATIC,7,122,193,24
|
IDC_STATIC,7,119,193,19
|
||||||
CONTROL "Check clients every",IDC_GLOBAL_HEARTBEAT_CHECK,"Button",
|
CONTROL "Check clients every",IDC_GLOBAL_HEARTBEAT_CHECK,"Button",
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP,7,153,78,10
|
BS_AUTOCHECKBOX | WS_TABSTOP,7,220,78,10
|
||||||
EDITTEXT IDC_GLOBAL_HEARTBEAT_TIME,112,152,45,12,ES_AUTOHSCROLL |
|
EDITTEXT IDC_GLOBAL_HEARTBEAT_TIME,112,219,45,12,ES_AUTOHSCROLL |
|
||||||
ES_NUMBER
|
ES_NUMBER
|
||||||
LTEXT "ms",IDC_STATIC,159,154,10,8
|
LTEXT "ms",IDC_STATIC,159,221,10,8
|
||||||
LTEXT "Synergy can synchronize screen savers across all screens.",
|
LTEXT "Synergy can synchronize screen savers across all screens.",
|
||||||
IDC_STATIC,7,176,193,8
|
IDC_STATIC,7,243,193,8
|
||||||
CONTROL "Synchronize screen savers",IDC_GLOBAL_SCREENSAVER_SYNC,
|
CONTROL "Synchronize screen savers",IDC_GLOBAL_SCREENSAVER_SYNC,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,192,101,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,259,101,10
|
||||||
LTEXT "Relative mouse moves on secondary screens.",IDC_STATIC,
|
LTEXT "Relative mouse moves on secondary screens.",IDC_STATIC,
|
||||||
7,213,193,8
|
7,280,193,8
|
||||||
CONTROL "Use relative mouse moves",IDC_GLOBAL_RELATIVE_MOVES,
|
CONTROL "Use relative mouse moves",IDC_GLOBAL_RELATIVE_MOVES,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,229,99,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,296,99,10
|
||||||
CONTROL "Don't take foreground window on Windows servers",
|
CONTROL "Don't take foreground window on Windows servers",
|
||||||
IDC_GLOBAL_LEAVE_FOREGROUND,"Button",BS_AUTOCHECKBOX |
|
IDC_GLOBAL_LEAVE_FOREGROUND,"Button",BS_AUTOCHECKBOX |
|
||||||
WS_TABSTOP,7,250,177,10
|
WS_TABSTOP,7,317,177,10
|
||||||
DEFPUSHBUTTON "OK",IDOK,94,269,50,14
|
DEFPUSHBUTTON "OK",IDOK,94,333,50,14
|
||||||
PUSHBUTTON "Cancel",IDCANCEL,150,269,50,14
|
PUSHBUTTON "Cancel",IDCANCEL,150,333,50,14
|
||||||
|
LTEXT "Synergy can periodically check that clients are still alive and connected. Use this only if synergy doesn't detect when clients disconnect.",
|
||||||
|
IDC_STATIC,7,189,193,24
|
||||||
|
CONTROL "Only switch when shift pressed.",IDC_GLOBAL_NEEDS_SHIFT,
|
||||||
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,143,115,10
|
||||||
|
CONTROL "Only switch when control pressed.",
|
||||||
|
IDC_GLOBAL_NEEDS_CONTROL,"Button",BS_AUTOCHECKBOX |
|
||||||
|
WS_TABSTOP,7,155,123,10
|
||||||
|
CONTROL "Only switch when alt pressed.",IDC_GLOBAL_NEEDS_ALT,
|
||||||
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,167,109,10
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_ADVANCED_OPTIONS DIALOG DISCARDABLE 0, 0, 230, 186
|
IDD_ADVANCED_OPTIONS DIALOG DISCARDABLE 0, 0, 230, 186
|
||||||
|
@ -445,7 +454,7 @@ BEGIN
|
||||||
LEFTMARGIN, 7
|
LEFTMARGIN, 7
|
||||||
RIGHTMARGIN, 200
|
RIGHTMARGIN, 200
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 283
|
BOTTOMMARGIN, 347
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_ADVANCED_OPTIONS, DIALOG
|
IDD_ADVANCED_OPTIONS, DIALOG
|
||||||
|
|
|
@ -117,7 +117,10 @@
|
||||||
#define IDC_GLOBAL_RELATIVE_MOVES 1048
|
#define IDC_GLOBAL_RELATIVE_MOVES 1048
|
||||||
#define IDC_ADVANCED_DEFAULTS 1049
|
#define IDC_ADVANCED_DEFAULTS 1049
|
||||||
#define IDC_GLOBAL_LEAVE_FOREGROUND 1049
|
#define IDC_GLOBAL_LEAVE_FOREGROUND 1049
|
||||||
|
#define IDC_GLOBAL_NEEDS_SHIFT 1050
|
||||||
|
#define IDC_GLOBAL_NEEDS_CONTROL 1051
|
||||||
#define IDC_ADD_DC_SIZE 1052
|
#define IDC_ADD_DC_SIZE 1052
|
||||||
|
#define IDC_GLOBAL_NEEDS_ALT 1052
|
||||||
#define IDC_ADD_DC_TOP_LEFT 1053
|
#define IDC_ADD_DC_TOP_LEFT 1053
|
||||||
#define IDC_ADD_DC_TOP_RIGHT 1054
|
#define IDC_ADD_DC_TOP_RIGHT 1054
|
||||||
#define IDC_ADD_DC_BOTTOM_LEFT 1055
|
#define IDC_ADD_DC_BOTTOM_LEFT 1055
|
||||||
|
|
|
@ -738,6 +738,15 @@ CConfig::readSectionOptions(CConfigReadContext& s)
|
||||||
else if (name == "switchDoubleTap") {
|
else if (name == "switchDoubleTap") {
|
||||||
addOption("", kOptionScreenSwitchTwoTap, s.parseInt(value));
|
addOption("", kOptionScreenSwitchTwoTap, s.parseInt(value));
|
||||||
}
|
}
|
||||||
|
else if (name == "switchNeedsShift") {
|
||||||
|
addOption("", kOptionScreenSwitchNeedsShift, s.parseBoolean(value));
|
||||||
|
}
|
||||||
|
else if (name == "switchNeedsControl") {
|
||||||
|
addOption("", kOptionScreenSwitchNeedsControl, s.parseBoolean(value));
|
||||||
|
}
|
||||||
|
else if (name == "switchNeedsAlt") {
|
||||||
|
addOption("", kOptionScreenSwitchNeedsAlt, s.parseBoolean(value));
|
||||||
|
}
|
||||||
else if (name == "screenSaverSync") {
|
else if (name == "screenSaverSync") {
|
||||||
addOption("", kOptionScreenSaverSync, s.parseBoolean(value));
|
addOption("", kOptionScreenSaverSync, s.parseBoolean(value));
|
||||||
}
|
}
|
||||||
|
@ -1327,6 +1336,15 @@ CConfig::getOptionName(OptionID id)
|
||||||
if (id == kOptionScreenSwitchTwoTap) {
|
if (id == kOptionScreenSwitchTwoTap) {
|
||||||
return "switchDoubleTap";
|
return "switchDoubleTap";
|
||||||
}
|
}
|
||||||
|
if (id == kOptionScreenSwitchNeedsShift) {
|
||||||
|
return "switchNeedsShift";
|
||||||
|
}
|
||||||
|
if (id == kOptionScreenSwitchNeedsControl) {
|
||||||
|
return "switchNeedsControl";
|
||||||
|
}
|
||||||
|
if (id == kOptionScreenSwitchNeedsAlt) {
|
||||||
|
return "switchNeedsAlt";
|
||||||
|
}
|
||||||
if (id == kOptionScreenSaverSync) {
|
if (id == kOptionScreenSaverSync) {
|
||||||
return "screenSaverSync";
|
return "screenSaverSync";
|
||||||
}
|
}
|
||||||
|
@ -1351,6 +1369,9 @@ CConfig::getOptionValue(OptionID id, OptionValue value)
|
||||||
if (id == kOptionHalfDuplexCapsLock ||
|
if (id == kOptionHalfDuplexCapsLock ||
|
||||||
id == kOptionHalfDuplexNumLock ||
|
id == kOptionHalfDuplexNumLock ||
|
||||||
id == kOptionHalfDuplexScrollLock ||
|
id == kOptionHalfDuplexScrollLock ||
|
||||||
|
id == kOptionScreenSwitchNeedsShift ||
|
||||||
|
id == kOptionScreenSwitchNeedsControl ||
|
||||||
|
id == kOptionScreenSwitchNeedsAlt ||
|
||||||
id == kOptionScreenSaverSync ||
|
id == kOptionScreenSaverSync ||
|
||||||
id == kOptionXTestXineramaUnaware ||
|
id == kOptionXTestXineramaUnaware ||
|
||||||
id == kOptionRelativeMouseMoves ||
|
id == kOptionRelativeMouseMoves ||
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "CLog.h"
|
#include "CLog.h"
|
||||||
#include "TMethodEventJob.h"
|
#include "TMethodEventJob.h"
|
||||||
#include "CArch.h"
|
#include "CArch.h"
|
||||||
|
#include "CKeyState.h"
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
|
@ -65,6 +66,9 @@ CServer::CServer(const CConfig& config, CPrimaryClient* primaryClient) :
|
||||||
m_switchTwoTapEngaged(false),
|
m_switchTwoTapEngaged(false),
|
||||||
m_switchTwoTapArmed(false),
|
m_switchTwoTapArmed(false),
|
||||||
m_switchTwoTapZone(3),
|
m_switchTwoTapZone(3),
|
||||||
|
m_switchNeedsShift(false),
|
||||||
|
m_switchNeedsControl(false),
|
||||||
|
m_switchNeedsAlt(false),
|
||||||
m_relativeMoves(false),
|
m_relativeMoves(false),
|
||||||
m_keyboardBroadcasting(false),
|
m_keyboardBroadcasting(false),
|
||||||
m_lockedToScreen(false)
|
m_lockedToScreen(false)
|
||||||
|
@ -873,6 +877,19 @@ CServer::isSwitchOkay(CBaseClientProxy* newScreen,
|
||||||
stopSwitch();
|
stopSwitch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check for optional needed modifiers
|
||||||
|
KeyModifierMask mods = this->m_primaryClient->getToggleMask( );
|
||||||
|
|
||||||
|
if (!preventSwitch && (
|
||||||
|
(this->m_switchNeedsShift && ((mods & KeyModifierShift) != KeyModifierShift)) ||
|
||||||
|
(this->m_switchNeedsControl && ((mods & KeyModifierControl) != KeyModifierControl)) ||
|
||||||
|
(this->m_switchNeedsAlt && ((mods & KeyModifierAlt) != KeyModifierAlt))
|
||||||
|
)) {
|
||||||
|
LOG((CLOG_DEBUG1 "need modifiers to switch"));
|
||||||
|
preventSwitch = true;
|
||||||
|
stopSwitch();
|
||||||
|
}
|
||||||
|
|
||||||
return !preventSwitch;
|
return !preventSwitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1115,6 +1132,10 @@ CServer::processOptions()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_switchNeedsShift = false; // it seems if i don't add these
|
||||||
|
m_switchNeedsControl = false; // lines, the 'reload config' option
|
||||||
|
m_switchNeedsAlt = false; // doesnt' work correct.
|
||||||
|
|
||||||
bool newRelativeMoves = m_relativeMoves;
|
bool newRelativeMoves = m_relativeMoves;
|
||||||
for (CConfig::CScreenOptions::const_iterator index = options->begin();
|
for (CConfig::CScreenOptions::const_iterator index = options->begin();
|
||||||
index != options->end(); ++index) {
|
index != options->end(); ++index) {
|
||||||
|
@ -1134,11 +1155,19 @@ CServer::processOptions()
|
||||||
}
|
}
|
||||||
stopSwitchTwoTap();
|
stopSwitchTwoTap();
|
||||||
}
|
}
|
||||||
|
else if (id == kOptionScreenSwitchNeedsControl) {
|
||||||
|
m_switchNeedsControl = (value != 0);
|
||||||
|
}
|
||||||
|
else if (id == kOptionScreenSwitchNeedsShift) {
|
||||||
|
m_switchNeedsShift = (value != 0);
|
||||||
|
}
|
||||||
|
else if (id == kOptionScreenSwitchNeedsAlt) {
|
||||||
|
m_switchNeedsAlt = (value != 0);
|
||||||
|
}
|
||||||
else if (id == kOptionRelativeMouseMoves) {
|
else if (id == kOptionRelativeMouseMoves) {
|
||||||
newRelativeMoves = (value != 0);
|
newRelativeMoves = (value != 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_relativeMoves && !newRelativeMoves) {
|
if (m_relativeMoves && !newRelativeMoves) {
|
||||||
stopRelativeMoves();
|
stopRelativeMoves();
|
||||||
}
|
}
|
||||||
|
|
|
@ -444,6 +444,11 @@ private:
|
||||||
bool m_switchTwoTapArmed;
|
bool m_switchTwoTapArmed;
|
||||||
SInt32 m_switchTwoTapZone;
|
SInt32 m_switchTwoTapZone;
|
||||||
|
|
||||||
|
// modifiers needed before switching
|
||||||
|
bool m_switchNeedsShift;
|
||||||
|
bool m_switchNeedsControl;
|
||||||
|
bool m_switchNeedsAlt;
|
||||||
|
|
||||||
// relative mouse move option
|
// relative mouse move option
|
||||||
bool m_relativeMoves;
|
bool m_relativeMoves;
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,9 @@ static const OptionID kOptionScreenSwitchCorners = OPTION_CODE("SSCM");
|
||||||
static const OptionID kOptionScreenSwitchCornerSize = OPTION_CODE("SSCS");
|
static const OptionID kOptionScreenSwitchCornerSize = OPTION_CODE("SSCS");
|
||||||
static const OptionID kOptionScreenSwitchDelay = OPTION_CODE("SSWT");
|
static const OptionID kOptionScreenSwitchDelay = OPTION_CODE("SSWT");
|
||||||
static const OptionID kOptionScreenSwitchTwoTap = OPTION_CODE("SSTT");
|
static const OptionID kOptionScreenSwitchTwoTap = OPTION_CODE("SSTT");
|
||||||
|
static const OptionID kOptionScreenSwitchNeedsShift = OPTION_CODE("SSNS");
|
||||||
|
static const OptionID kOptionScreenSwitchNeedsControl = OPTION_CODE("SSNC");
|
||||||
|
static const OptionID kOptionScreenSwitchNeedsAlt = OPTION_CODE("SSNA");
|
||||||
static const OptionID kOptionScreenSaverSync = OPTION_CODE("SSVR");
|
static const OptionID kOptionScreenSaverSync = OPTION_CODE("SSVR");
|
||||||
static const OptionID kOptionXTestXineramaUnaware = OPTION_CODE("XTXU");
|
static const OptionID kOptionXTestXineramaUnaware = OPTION_CODE("XTXU");
|
||||||
static const OptionID kOptionScreenPreserveFocus = OPTION_CODE("SFOC");
|
static const OptionID kOptionScreenPreserveFocus = OPTION_CODE("SFOC");
|
||||||
|
|
Loading…
Reference in New Issue