diff --git a/CHANGELOG.md b/CHANGELOG.md
index 942d48b8b..4ac644e7a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,9 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
### Added
+- #1770: Added missing RDP performance settings
- #545: Option to minimize to system tray on closing
-- #283: Support for native PowerShell remoting as new protocol
- #420: SSH tunneling implemented
+- #283: Support for native PowerShell remoting as new protocol
### Changed
- #1767: Turned about window into a simple popup form
- #1766: Converted components check page into options page
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs
index 064773a21..a7086d279 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs
@@ -245,6 +245,34 @@ namespace mRemoteNG.Config.Serializers.Csv
connectionRecord.EnableDesktopComposition = value;
}
+ if (headers.Contains("DisableFullWindowDrag"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableFullWindowDrag")], out value))
+ connectionRecord.DisableFullWindowDrag = value;
+ }
+
+ if (headers.Contains("DisableMenuAnimations"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableMenuAnimations")], out value))
+ connectionRecord.DisableMenuAnimations = value;
+ }
+
+ if (headers.Contains("DisableCursorShadow"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableCursorShadow")], out value))
+ connectionRecord.DisableCursorShadow = value;
+ }
+
+ if (headers.Contains("DisableCursorBlinking"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableCursorBlinking")], out value))
+ connectionRecord.DisableCursorBlinking = value;
+ }
+
if (headers.Contains("CacheBitmaps"))
{
bool value;
@@ -442,6 +470,34 @@ namespace mRemoteNG.Config.Serializers.Csv
connectionRecord.Inheritance.EnableDesktopComposition = value;
}
+ if (headers.Contains("InheritDisableFullWindowDrag"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableFullWindowDrag")], out value))
+ connectionRecord.Inheritance.DisableFullWindowDrag = value;
+ }
+
+ if (headers.Contains("InheritDisableMenuAnimations"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableMenuAnimations")], out value))
+ connectionRecord.Inheritance.DisableMenuAnimations = value;
+ }
+
+ if (headers.Contains("InheritDisableCursorShadow"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableCursorShadow")], out value))
+ connectionRecord.Inheritance.DisableCursorShadow = value;
+ }
+
+ if (headers.Contains("InheritDisableCursorBlinking"))
+ {
+ bool value;
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableCursorBlinking")], out value))
+ connectionRecord.Inheritance.DisableCursorBlinking = value;
+ }
+
if (headers.Contains("InheritDomain"))
{
bool value;
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs
index b49091599..574fe1b1a 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs
@@ -57,7 +57,7 @@ namespace mRemoteNG.Config.Serializers.Csv
sb.Append("Domain;");
sb.Append("Hostname;Port;VmId;Protocol;SSHTunnelConnectionName;SSHOptions;PuttySession;ConnectToConsole;UseCredSsp;UseVmId;UseEnhancedMode;RenderingEngine;ICAEncryptionStrength;RDPAuthenticationLevel;" +
- "LoadBalanceInfo;Colors;Resolution;AutomaticResize;DisplayWallpaper;DisplayThemes;EnableFontSmoothing;EnableDesktopComposition;" +
+ "LoadBalanceInfo;Colors;Resolution;AutomaticResize;DisplayWallpaper;DisplayThemes;EnableFontSmoothing;EnableDesktopComposition;DisableFullWindowDrag;DisableMenuAnimations;DisableCursorShadow;DisableCursorBlinking;" +
"CacheBitmaps;RedirectDiskDrives;RedirectPorts;RedirectPrinters;RedirectClipboard;RedirectSmartCards;RedirectSound;RedirectKeys;" +
"PreExtApp;PostExtApp;MacAddress;UserField;ExtApp;Favorite;VNCCompression;VNCEncoding;VNCAuthMode;VNCProxyType;VNCProxyIP;" +
"VNCProxyPort;VNCProxyUsername;VNCProxyPassword;VNCColors;VNCSmartSizeMode;VNCViewOnly;RDGatewayUsageMethod;RDGatewayHostname;" +
@@ -65,7 +65,7 @@ namespace mRemoteNG.Config.Serializers.Csv
if (_saveFilter.SaveInheritance)
sb.Append("InheritCacheBitmaps;InheritColors;InheritDescription;InheritDisplayThemes;InheritDisplayWallpaper;" +
- "InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;" +
+ "InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDisableFullWindowDrag;InheritDisableMenuAnimations;InheritDisableCursorShadow;InheritDisableCursorBlinking;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;" +
"InheritProtocol;InheritSSHTunnelConnectionName;InheritSSHOptions;InheritPuttySession;InheritRedirectDiskDrives;InheritRedirectKeys;InheritRedirectPorts;InheritRedirectPrinters;" +
"InheritRedirectClipboard;InheritRedirectSmartCards;InheritRedirectSound;InheritResolution;InheritAutomaticResize;" +
"InheritUseConsoleSession;InheritUseCredSsp;InheritUseVmId;InheritUseEnhancedMode;InheritVmId;InheritRenderingEngine;InheritUsername;InheritICAEncryptionStrength;" +
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs
index d435735be..e22c5dc0a 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs
@@ -119,6 +119,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
connectionInfo.DisplayThemes = (bool)dataRow["DisplayThemes"];
connectionInfo.EnableFontSmoothing = (bool)dataRow["EnableFontSmoothing"];
connectionInfo.EnableDesktopComposition = (bool)dataRow["EnableDesktopComposition"];
+ connectionInfo.DisableFullWindowDrag = (bool)dataRow["DisableFullWindowDrag"];
+ connectionInfo.DisableMenuAnimations = (bool)dataRow["DisableMenuAnimations"];
+ connectionInfo.DisableCursorShadow = (bool)dataRow["DisableCursorShadow"];
+ connectionInfo.DisableCursorBlinking = (bool)dataRow["DisableCursorBlinking"];
connectionInfo.CacheBitmaps = (bool)dataRow["CacheBitmaps"];
connectionInfo.RedirectDiskDrives = (bool)dataRow["RedirectDiskDrives"];
connectionInfo.RedirectPorts = (bool)dataRow["RedirectPorts"];
@@ -177,6 +181,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
connectionInfo.Inheritance.DisplayWallpaper = (bool)dataRow["InheritDisplayWallpaper"];
connectionInfo.Inheritance.EnableFontSmoothing = (bool)dataRow["InheritEnableFontSmoothing"];
connectionInfo.Inheritance.EnableDesktopComposition = (bool)dataRow["InheritEnableDesktopComposition"];
+ connectionInfo.Inheritance.DisableFullWindowDrag = (bool)dataRow["InheritDisableFullWindowDrag"];
+ connectionInfo.Inheritance.DisableMenuAnimations = (bool)dataRow["InheritDisableMenuAnimations"];
+ connectionInfo.Inheritance.DisableCursorShadow = (bool)dataRow["InheritDisableCursorShadow"];
+ connectionInfo.Inheritance.DisableCursorBlinking = (bool)dataRow["InheritDisableCursorBlinking"];
connectionInfo.Inheritance.Domain = (bool)dataRow["InheritDomain"];
connectionInfo.Inheritance.Icon = (bool)dataRow["InheritIcon"];
connectionInfo.Inheritance.Panel = (bool)dataRow["InheritPanel"];
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs
index 7b9a7a255..6ebe08638 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs
@@ -125,6 +125,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataTable.Columns.Add("DisplayThemes", typeof(bool));
dataTable.Columns.Add("EnableFontSmoothing", typeof(bool));
dataTable.Columns.Add("EnableDesktopComposition", typeof(bool));
+ dataTable.Columns.Add("DisableFullWindowDrag", typeof(bool));
+ dataTable.Columns.Add("DisableMenuAnimations", typeof(bool));
+ dataTable.Columns.Add("DisableCursorShadow", typeof(bool));
+ dataTable.Columns.Add("DisableCursorBlinking", typeof(bool));
dataTable.Columns.Add("CacheBitmaps", typeof(bool));
dataTable.Columns.Add("RedirectDiskDrives", typeof(bool));
dataTable.Columns.Add("RedirectPorts", typeof(bool));
@@ -164,6 +168,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataTable.Columns.Add("InheritDisplayWallpaper", typeof(bool));
dataTable.Columns.Add("InheritEnableFontSmoothing", typeof(bool));
dataTable.Columns.Add("InheritEnableDesktopComposition", typeof(bool));
+ dataTable.Columns.Add("InheritDisableFullWindowDrag", typeof(bool));
+ dataTable.Columns.Add("InheritDisableMenuAnimations", typeof(bool));
+ dataTable.Columns.Add("InheritDisableCursorShadow", typeof(bool));
+ dataTable.Columns.Add("InheritDisableCursorBlinking", typeof(bool));
dataTable.Columns.Add("InheritDomain", typeof(bool));
dataTable.Columns.Add("InheritIcon", typeof(bool));
dataTable.Columns.Add("InheritPanel", typeof(bool));
@@ -297,6 +305,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["DisplayThemes"].Equals(connectionInfo.DisplayThemes) &&
dataRow["EnableFontSmoothing"].Equals(connectionInfo.EnableFontSmoothing) &&
dataRow["EnableDesktopComposition"].Equals(connectionInfo.EnableDesktopComposition) &&
+ dataRow["DisableFullWindowDrag"].Equals(connectionInfo.DisableFullWindowDrag) &&
+ dataRow["DisableMenuAnimations"].Equals(connectionInfo.DisableMenuAnimations) &&
+ dataRow["DisableCursorShadow"].Equals(connectionInfo.DisableCursorShadow) &&
+ dataRow["DisableCursorBlinking"].Equals(connectionInfo.DisableCursorBlinking) &&
dataRow["CacheBitmaps"].Equals(connectionInfo.CacheBitmaps) &&
dataRow["RedirectDiskDrives"].Equals(connectionInfo.RedirectDiskDrives) &&
dataRow["RedirectPorts"].Equals(connectionInfo.RedirectPorts) &&
@@ -343,6 +355,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["InheritDisplayWallpaper"].Equals(connectionInfo.Inheritance.DisplayWallpaper) &&
dataRow["InheritEnableFontSmoothing"].Equals(connectionInfo.Inheritance.EnableFontSmoothing) &&
dataRow["InheritEnableDesktopComposition"].Equals(connectionInfo.Inheritance.EnableDesktopComposition) &&
+ dataRow["InheritDisableFullWindowDrag"].Equals(connectionInfo.Inheritance.DisableFullWindowDrag) &&
+ dataRow["InheritDisableMenuAnimations"].Equals(connectionInfo.Inheritance.DisableMenuAnimations) &&
+ dataRow["InheritDisableCursorShadow"].Equals(connectionInfo.Inheritance.DisableCursorShadow) &&
+ dataRow["InheritDisableCursorBlinking"].Equals(connectionInfo.Inheritance.DisableCursorBlinking) &&
dataRow["InheritDomain"].Equals(connectionInfo.Inheritance.Domain) &&
dataRow["InheritIcon"].Equals(connectionInfo.Inheritance.Icon) &&
dataRow["InheritPanel"].Equals(connectionInfo.Inheritance.Panel) &&
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs
index 0d00a088d..43d4f3eda 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs
@@ -101,6 +101,14 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.EnableFontSmoothing.ToString().ToLowerInvariant()));
element.Add(new XAttribute("EnableDesktopComposition",
connectionInfo.EnableDesktopComposition.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableFullWindowDrag",
+ connectionInfo.DisableFullWindowDrag.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableMenuAnimations",
+ connectionInfo.DisableMenuAnimations.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableCursorShadow",
+ connectionInfo.DisableCursorShadow.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableCursorBlinking",
+ connectionInfo.DisableCursorBlinking.ToString().ToLowerInvariant()));
element.Add(new XAttribute("CacheBitmaps", connectionInfo.CacheBitmaps.ToString().ToLowerInvariant()));
element.Add(new XAttribute("RedirectDiskDrives",
connectionInfo.RedirectDiskDrives.ToString().ToLowerInvariant()));
@@ -183,6 +191,18 @@ namespace mRemoteNG.Config.Serializers.Xml
element.Add(new XAttribute("InheritEnableDesktopComposition",
connectionInfo
.Inheritance.EnableDesktopComposition.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableFullWindowDrag",
+ connectionInfo
+ .Inheritance.DisableFullWindowDrag.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableMenuAnimations",
+ connectionInfo
+ .Inheritance.DisableMenuAnimations.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableCursorShadow",
+ connectionInfo
+ .Inheritance.DisableCursorShadow.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableCursorBlinking",
+ connectionInfo
+ .Inheritance.DisableCursorBlinking.ToString().ToLowerInvariant()));
element.Add(new XAttribute("InheritDomain",
connectionInfo.Inheritance.Domain.ToString().ToLowerInvariant()));
element.Add(
@@ -316,6 +336,10 @@ namespace mRemoteNG.Config.Serializers.Xml
element.Add(new XAttribute("InheritDisplayWallpaper", falseString));
element.Add(new XAttribute("InheritEnableFontSmoothing", falseString));
element.Add(new XAttribute("InheritEnableDesktopComposition", falseString));
+ element.Add(new XAttribute("InheritDisableFullWindowDrag", falseString));
+ element.Add(new XAttribute("InheritDisableMenuAnimations", falseString));
+ element.Add(new XAttribute("InheritDisableCursorShadow", falseString));
+ element.Add(new XAttribute("InheritDisableCursorBlinking", falseString));
element.Add(new XAttribute("InheritDomain", falseString));
element.Add(new XAttribute("InheritIcon", falseString));
element.Add(new XAttribute("InheritPanel", falseString));
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs
index dcd6ffa5c..c1e8ed514 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs
@@ -545,6 +545,10 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.RdpVersion = xmlnode.GetAttributeAsEnum("RdpVersion", RdpVersion.Highest);
connectionInfo.SSHTunnelConnectionName = xmlnode.GetAttributeAsString("SSHTunnelConnectionName");
connectionInfo.SSHOptions = xmlnode.GetAttributeAsString("SSHOptions");
+ connectionInfo.DisableFullWindowDrag = xmlnode.GetAttributeAsBool("DisableFullWindowDrag");
+ connectionInfo.DisableMenuAnimations = xmlnode.GetAttributeAsBool("DisableMenuAnimations");
+ connectionInfo.DisableCursorShadow = xmlnode.GetAttributeAsBool("DisableCursorShadow");
+ connectionInfo.DisableCursorBlinking = xmlnode.GetAttributeAsBool("DisableCursorBlinking");
connectionInfo.Inheritance.RedirectClipboard = xmlnode.GetAttributeAsBool("InheritRedirectClipboard");
connectionInfo.Inheritance.Favorite = xmlnode.GetAttributeAsBool("InheritFavorite");
connectionInfo.Inheritance.RdpVersion = xmlnode.GetAttributeAsBool("InheritRdpVersion");
@@ -553,6 +557,10 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.Inheritance.UseEnhancedMode = xmlnode.GetAttributeAsBool("InheritUseEnhancedMode");
connectionInfo.Inheritance.SSHTunnelConnectionName = xmlnode.GetAttributeAsBool("InheritSSHTunnelConnectionName");
connectionInfo.Inheritance.SSHOptions = xmlnode.GetAttributeAsBool("InheritSSHOptions");
+ connectionInfo.Inheritance.DisableFullWindowDrag = xmlnode.GetAttributeAsBool("InheritDisableFullWindowDrag");
+ connectionInfo.Inheritance.DisableMenuAnimations = xmlnode.GetAttributeAsBool("InheritDisableMenuAnimations");
+ connectionInfo.Inheritance.DisableCursorShadow = xmlnode.GetAttributeAsBool("InheritDisableCursorShadow");
+ connectionInfo.Inheritance.DisableCursorBlinking = xmlnode.GetAttributeAsBool("InheritDisableCursorBlinking");
}
}
catch (Exception ex)
diff --git a/mRemoteV1/Connection/AbstractConnectionRecord.cs b/mRemoteV1/Connection/AbstractConnectionRecord.cs
index 6b97759be..6dc7a1cd8 100644
--- a/mRemoteV1/Connection/AbstractConnectionRecord.cs
+++ b/mRemoteV1/Connection/AbstractConnectionRecord.cs
@@ -59,6 +59,10 @@ namespace mRemoteNG.Connection
private bool _displayThemes;
private bool _enableFontSmoothing;
private bool _enableDesktopComposition;
+ private bool _disableFullWindowDrag;
+ private bool _disableMenuAnimations;
+ private bool _disableCursorShadow;
+ private bool _disableCursorBlinking;
private bool _redirectKeys;
private bool _redirectDiskDrives;
@@ -536,6 +540,49 @@ namespace mRemoteNG.Connection
set => SetField(ref _enableDesktopComposition, value, "EnableDesktopComposition");
}
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableFullWindowDrag)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableFullWindowDrag)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableFullWindowDrag
+ {
+ get => GetPropertyValue("DisableFullWindowDrag", _disableFullWindowDrag);
+ set => SetField(ref _disableFullWindowDrag, value, "DisableFullWindowDrag");
+ }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableMenuAnimations)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableMenuAnimations)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableMenuAnimations
+ {
+ get => GetPropertyValue("DisableMenuAnimations", _disableMenuAnimations);
+ set => SetField(ref _disableMenuAnimations, value, "DisableMenuAnimations");
+ }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableCursorShadow)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableCursorShadow)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableCursorShadow
+ {
+ get => GetPropertyValue("DisableCursorShadow", _disableCursorShadow);
+ set => SetField(ref _disableCursorShadow, value, "DisableCursorShadow");
+ }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableCursorShadow)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableCursorShadow)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableCursorBlinking
+ {
+ get => GetPropertyValue("DisableCursorBlinking", _disableCursorBlinking);
+ set => SetField(ref _disableCursorBlinking, value, "DisableCursorBlinking");
+ }
#endregion
#region Redirect
diff --git a/mRemoteV1/Connection/ConnectionInfoInheritance.cs b/mRemoteV1/Connection/ConnectionInfoInheritance.cs
index 37c6b8846..6665005dd 100644
--- a/mRemoteV1/Connection/ConnectionInfoInheritance.cs
+++ b/mRemoteV1/Connection/ConnectionInfoInheritance.cs
@@ -277,6 +277,30 @@ namespace mRemoteNG.Connection
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool EnableDesktopComposition { get; set; }
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableFullWindowDrag)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableFullWindowDrag)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableFullWindowDrag { get; set; }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableMenuAnimations)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableMenuAnimations)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableMenuAnimations { get; set; }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableCursorShadow)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableCursorShadow)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableCursorShadow { get; set; }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableCursorBlinking)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableCursorBlinking)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableCursorBlinking { get; set; }
+
#endregion
#region Redirect
diff --git a/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs b/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
index 59924179c..6e8eafcd3 100644
--- a/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
+++ b/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
@@ -7,25 +7,25 @@ namespace mRemoteNG.Connection.Protocol.RDP
[Description("strRDPDisableWallpaper")]
DisableWallpaper = 0x1,
-// [Description("strRDPDisableFullWindowdrag")]
-// DisableFullWindowDrag = 0x2,
-
-// [Description("strRDPDisableMenuAnimations")]
-// DisableMenuAnimations = 0x4,
+ [Description("strRDPDisableFullWindowdrag")]
+ DisableFullWindowDrag = 0x2,
+
+ [Description("strRDPDisableMenuAnimations")]
+ DisableMenuAnimations = 0x4,
[Description("strRDPDisableThemes")]
DisableThemes = 0x8,
-// [Description("strRDPDisableCursorShadow")]
-// DisableCursorShadow = 0x20,
+ [Description("strRDPDisableCursorShadow")]
+ DisableCursorShadow = 0x20,
-// [Description("strRDPDisableCursorblinking")]
-// DisableCursorBlinking = 0x40,
+ [Description("strRDPDisableCursorblinking")]
+ DisableCursorBlinking = 0x40,
[Description("strRDPEnableFontSmoothing")]
EnableFontSmoothing = 0x80,
[Description("strRDPEnableDesktopComposition")]
- EnableDesktopComposition = 0x100
+ EnableDesktopComposition = 0x100,
}
}
\ No newline at end of file
diff --git a/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs b/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs
index afd9af2c8..ed724a1fe 100644
--- a/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs
+++ b/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs
@@ -603,25 +603,29 @@ namespace mRemoteNG.Connection.Protocol.RDP
{
var pFlags = 0;
if (connectionInfo.DisplayThemes == false)
- {
pFlags += (int)RDPPerformanceFlags.DisableThemes;
- }
-
+
if (connectionInfo.DisplayWallpaper == false)
- {
pFlags += (int)RDPPerformanceFlags.DisableWallpaper;
- }
-
+
if (connectionInfo.EnableFontSmoothing)
- {
pFlags += (int)RDPPerformanceFlags.EnableFontSmoothing;
- }
if (connectionInfo.EnableDesktopComposition)
- {
pFlags += (int)RDPPerformanceFlags.EnableDesktopComposition;
- }
-
+
+ if (connectionInfo.DisableFullWindowDrag)
+ pFlags += (int)RDPPerformanceFlags.DisableFullWindowDrag;
+
+ if (connectionInfo.DisableMenuAnimations)
+ pFlags += (int)RDPPerformanceFlags.DisableMenuAnimations;
+
+ if (connectionInfo.DisableCursorShadow)
+ pFlags += (int)RDPPerformanceFlags.DisableCursorShadow;
+
+ if (connectionInfo.DisableCursorBlinking)
+ pFlags += (int)RDPPerformanceFlags.DisableCursorBlinking;
+
_rdpClient.AdvancedSettings2.PerformanceFlags = pFlags;
}
catch (Exception ex)
diff --git a/mRemoteV1/Documentation/mssql_db_setup.sql b/mRemoteV1/Documentation/mssql_db_setup.sql
index b92685496..04085234a 100644
--- a/mRemoteV1/Documentation/mssql_db_setup.sql
+++ b/mRemoteV1/Documentation/mssql_db_setup.sql
@@ -45,6 +45,13 @@ CREATE TABLE [dbo].[tblCons] (
DisplayThemes bit NOT NULL,
EnableFontSmoothing bit NOT NULL,
EnableDesktopComposition bit NOT NULL,
+
+
+ DisableFullWindowDrag bit NOT NULL,
+ DisableMenuAnimations bit NOT NULL,
+ DisableCursorShadow bit NOT NULL,
+ DisableCursorBlinking bit NOT NULL,
+
CacheBitmaps bit NOT NULL,
RedirectDiskDrives bit NOT NULL,
RedirectPorts bit NOT NULL,
diff --git a/mRemoteV1/Documentation/mysql_db_setup.sql b/mRemoteV1/Documentation/mysql_db_setup.sql
index be28001ab..1946d2428 100644
--- a/mRemoteV1/Documentation/mysql_db_setup.sql
+++ b/mRemoteV1/Documentation/mysql_db_setup.sql
@@ -48,6 +48,10 @@ CREATE TABLE `tblCons` (
`DisplayThemes` tinyint(1) NOT NULL,
`EnableFontSmoothing` tinyint(1) NOT NULL,
`EnableDesktopComposition` tinyint(1) NOT NULL,
+ `DisableFullWindowDrag` tinyint(1) NOT NULL,
+ `DisableMenuAnimations` tinyint(1) NOT NULL,
+ `DisableCursorShadow` tinyint(1) NOT NULL,
+ `DisableCursorBlinking` tinyint(1) NOT NULL,
`CacheBitmaps` tinyint(1) NOT NULL,
`RedirectDiskDrives` tinyint(1) NOT NULL,
`RedirectPorts` tinyint(1) NOT NULL,
diff --git a/mRemoteV1/Resources/Language/Language.Designer.cs b/mRemoteV1/Resources/Language/Language.Designer.cs
index 0b721a4a4..5c40ede24 100644
--- a/mRemoteV1/Resources/Language/Language.Designer.cs
+++ b/mRemoteV1/Resources/Language/Language.Designer.cs
@@ -4800,6 +4800,42 @@ namespace mRemoteNG {
}
}
+ ///
+ /// Looks up a localized string similar to Determines whether cursor flashes should be disabled..
+ ///
+ internal static string strPropertyDescriptionDisableCursorBlinking {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableCursorBlinking", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Determines whether a mouse shadow should be visible..
+ ///
+ internal static string strPropertyDescriptionDisableCursorShadow {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableCursorShadow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Determines whether window content is displayed when you drag the window to a new location..
+ ///
+ internal static string strPropertyDescriptionDisableFullWindowDrag {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableFullWindowDrag", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Determines whether menus and windows can be displayed with animation effects in the remote session..
+ ///
+ internal static string strPropertyDescriptionDisableMenuAnimations {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableMenuAnimations", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Select yes if the theme of the remote host should be displayed..
///
@@ -5403,6 +5439,42 @@ namespace mRemoteNG {
}
}
+ ///
+ /// Looks up a localized string similar to Disable Cursor Blinking.
+ ///
+ internal static string strPropertyNameDisableCursorBlinking {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableCursorBlinking", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disable Cursor Shadow.
+ ///
+ internal static string strPropertyNameDisableCursorShadow {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableCursorShadow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disable Full Window Drag.
+ ///
+ internal static string strPropertyNameDisableFullWindowDrag {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableFullWindowDrag", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disable Menu Animations.
+ ///
+ internal static string strPropertyNameDisableMenuAnimations {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableMenuAnimations", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Display Themes.
///
diff --git a/mRemoteV1/Resources/Language/Language.resx b/mRemoteV1/Resources/Language/Language.resx
index 163c4dc02..7345514bd 100644
--- a/mRemoteV1/Resources/Language/Language.resx
+++ b/mRemoteV1/Resources/Language/Language.resx
@@ -2876,4 +2876,28 @@ Development Channel includes Alphas, Betas & Release Candidates.
License
+
+ Determines whether cursor flashes should be disabled.
+
+
+ Determines whether a mouse shadow should be visible.
+
+
+ Determines whether window content is displayed when you drag the window to a new location.
+
+
+ Determines whether menus and windows can be displayed with animation effects in the remote session.
+
+
+ Disable Cursor Blinking
+
+
+ Disable Cursor Shadow
+
+
+ Disable Full Window Drag
+
+
+ Disable Menu Animations
+
\ No newline at end of file