mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Disable Fullscreen item on tab context menu if redirect keys is enabled for RDP connection. Fix automatic RDP resize when redirect keys is enabled. Fix automatic RDP resize when SmartSize setting is changed.
This commit is contained in:
@@ -12,26 +12,51 @@ Namespace Connection
|
||||
Inherits Connection.Protocol.Base
|
||||
|
||||
#Region "Properties"
|
||||
Private _SmartSize As Boolean
|
||||
Public Property SmartSize() As Boolean
|
||||
Get
|
||||
Return Me.RDP.AdvancedSettings4.SmartSizing
|
||||
Return RDP.AdvancedSettings4.SmartSizing
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
Me.RDP.AdvancedSettings4.SmartSizing = value
|
||||
RDP.AdvancedSettings4.SmartSizing = value
|
||||
ReconnectForResize()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private _Fullscreen As Boolean
|
||||
Public Property Fullscreen() As Boolean
|
||||
Get
|
||||
Return Me.RDP.FullScreen
|
||||
Return RDP.FullScreen
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
RDP.FullScreen = value
|
||||
ReconnectForResize()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private _redirectKeys As Boolean = False
|
||||
Public Property RedirectKeys As Boolean
|
||||
Get
|
||||
Return _redirectKeys
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
_redirectKeys = value
|
||||
Try
|
||||
If Not _redirectKeys Then Return
|
||||
|
||||
RDP.AdvancedSettings2.ContainerHandledFullScreen = 1
|
||||
RDP.AdvancedSettings2.DisplayConnectionBar = False
|
||||
RDP.AdvancedSettings2.PinConnectionBar = False
|
||||
|
||||
If RDPVersion >= Versions.RDC70 Then
|
||||
Dim msRdpClientNonScriptable As MSTSCLib.IMsRdpClientNonScriptable5 = RDP.GetOcx()
|
||||
msRdpClientNonScriptable.DisableConnectionBar = True
|
||||
End If
|
||||
|
||||
RDP.FullScreen = True
|
||||
Catch ex As Exception
|
||||
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
|
||||
End Try
|
||||
End Set
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "Private Declarations"
|
||||
@@ -88,7 +113,7 @@ Namespace Connection
|
||||
|
||||
Me.SetUseConsoleSession()
|
||||
Me.SetPort()
|
||||
Me.SetRedirectKeys()
|
||||
RedirectKeys = Info.RedirectKeys
|
||||
Me.SetRedirection()
|
||||
Me.SetAuthenticationLevel()
|
||||
Me.SetRDGateway()
|
||||
@@ -193,10 +218,11 @@ Namespace Connection
|
||||
If RDPVersion < Versions.RDC80 Then Return
|
||||
|
||||
If Not (InterfaceControl.Info.Resolution = RDPResolutions.FitToWindow Or _
|
||||
InterfaceControl.Info.Resolution = RDPResolutions.Fullscreen) Then Return
|
||||
InterfaceControl.Info.Resolution = RDPResolutions.Fullscreen) Or _
|
||||
SmartSize Then Return
|
||||
|
||||
Dim size As Size
|
||||
If Not Fullscreen Then
|
||||
If RedirectKeys Or Not Fullscreen Then
|
||||
size = Control.Size
|
||||
Else
|
||||
size = Screen.FromControl(Control).Bounds.Size
|
||||
@@ -352,25 +378,6 @@ Namespace Connection
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub SetRedirectKeys()
|
||||
Try
|
||||
If Me.Info.RedirectKeys Then
|
||||
RDP.AdvancedSettings2.ContainerHandledFullScreen = 1
|
||||
RDP.AdvancedSettings2.DisplayConnectionBar = False
|
||||
RDP.AdvancedSettings2.PinConnectionBar = False
|
||||
|
||||
If RDPVersion >= Versions.RDC70 Then
|
||||
Dim msRdpClientNonScriptable As MSTSCLib.IMsRdpClientNonScriptable5 = RDP.GetOcx()
|
||||
msRdpClientNonScriptable.DisableConnectionBar = True
|
||||
End If
|
||||
|
||||
RDP.FullScreen = True
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub SetRedirection()
|
||||
Try
|
||||
RDP.AdvancedSettings2.RedirectDrives = Me.Info.RedirectDiskDrives
|
||||
|
||||
@@ -443,15 +443,20 @@ Namespace UI
|
||||
End If
|
||||
|
||||
If IC.Info.Protocol = mRemoteNG.Connection.Protocol.Protocols.RDP Then
|
||||
Me.cmenTabFullscreen.Enabled = True
|
||||
Me.cmenTabSmartSize.Enabled = True
|
||||
|
||||
Dim rdp As mRemoteNG.Connection.Protocol.RDP = IC.Protocol
|
||||
Me.cmenTabSmartSize.Checked = rdp.SmartSize
|
||||
Me.cmenTabFullscreen.Checked = rdp.Fullscreen
|
||||
|
||||
If rdp.RedirectKeys Then
|
||||
cmenTabFullscreen.Enabled = False
|
||||
Else
|
||||
cmenTabFullscreen.Enabled = True
|
||||
cmenTabFullscreen.Checked = rdp.Fullscreen
|
||||
End If
|
||||
|
||||
cmenTabSmartSize.Enabled = True
|
||||
cmenTabSmartSize.Checked = rdp.SmartSize
|
||||
Else
|
||||
Me.cmenTabFullscreen.Enabled = False
|
||||
Me.cmenTabSmartSize.Enabled = False
|
||||
cmenTabFullscreen.Enabled = False
|
||||
cmenTabSmartSize.Enabled = False
|
||||
End If
|
||||
|
||||
If IC.Info.Protocol = mRemoteNG.Connection.Protocol.Protocols.VNC Then
|
||||
|
||||
Reference in New Issue
Block a user