diff --git a/sources/Google.Solutions.IapDesktop.Application/Views/DocumentWindow.cs b/sources/Google.Solutions.IapDesktop.Application/Views/DocumentWindow.cs index 305080366..0037ac1bf 100644 --- a/sources/Google.Solutions.IapDesktop.Application/Views/DocumentWindow.cs +++ b/sources/Google.Solutions.IapDesktop.Application/Views/DocumentWindow.cs @@ -40,6 +40,17 @@ public class DocumentWindow : ToolWindow /// back to main window. /// public const Keys ToggleFocusHotKey = Keys.Control | Keys.Alt | Keys.Home; + + /// + /// Hotkey to enter full-screen. + /// + public const Keys EnterFullScreenHotKey = Keys.F11; + + /// + /// Hotkey to leave full-screen. + /// + public const Keys LeaveFullScreenHotKey = Keys.Control | Keys.Alt | Keys.F11; + // // Full screen form -- created lazily. There can only be one window diff --git a/sources/Google.Solutions.IapDesktop.Extensions.Shell/Services/ShellExtension.cs b/sources/Google.Solutions.IapDesktop.Extensions.Shell/Services/ShellExtension.cs index 695f15462..ed8307396 100644 --- a/sources/Google.Solutions.IapDesktop.Extensions.Shell/Services/ShellExtension.cs +++ b/sources/Google.Solutions.IapDesktop.Extensions.Shell/Services/ShellExtension.cs @@ -371,7 +371,7 @@ public ShellExtension(IServiceProvider serviceProvider) _ => DoWithActiveRemoteDesktopSession(session => session.TrySetFullscreen(FullScreenMode.SingleScreen))) { Image = Resources.Fullscreen_16, - ShortcutKeys = Keys.F11 + ShortcutKeys = DocumentWindow.EnterFullScreenHotKey }); desktopMenu.AddCommand( new Command( diff --git a/sources/Google.Solutions.IapDesktop.Extensions.Shell/Views/RemoteDesktop/RemoteDesktopPane.cs b/sources/Google.Solutions.IapDesktop.Extensions.Shell/Views/RemoteDesktop/RemoteDesktopPane.cs index a00941bca..7f64810cb 100644 --- a/sources/Google.Solutions.IapDesktop.Extensions.Shell/Views/RemoteDesktop/RemoteDesktopPane.cs +++ b/sources/Google.Solutions.IapDesktop.Extensions.Shell/Views/RemoteDesktop/RemoteDesktopPane.cs @@ -366,7 +366,7 @@ InstanceConnectionSettings settings // the same as the main window uses to move the focus to the // control. // - // NB. The Ctrl+Alt are implied by the HotKeyFocusRelease properties. + // NB. The Ctrl+Alt modifiers are implied by the HotKeyFocusRelease properties. // Debug.Assert(ToggleFocusHotKey.HasFlag(Keys.Control)); Debug.Assert(ToggleFocusHotKey.HasFlag(Keys.Alt)); @@ -375,6 +375,15 @@ InstanceConnectionSettings settings advancedSettings.HotKeyFocusReleaseLeft = focusReleaseVirtualKey; advancedSettings.HotKeyFocusReleaseRight = focusReleaseVirtualKey; + // + // NB. The Ctrl+Alt modifiers are implied by the HotKeyFullScreen properties. + // + Debug.Assert(LeaveFullScreenHotKey.HasFlag(Keys.Control)); + Debug.Assert(LeaveFullScreenHotKey.HasFlag(Keys.Alt)); + var leaveFullScreenVirtualKey = (int)(LeaveFullScreenHotKey & ~(Keys.Control | Keys.Alt)); + + advancedSettings.HotKeyFullScreen = (int)leaveFullScreenVirtualKey; + this.connecting = true; this.rdpClient.Connect(); }