Skip to content

Feature: Remote Desktop - View Only mode#3482

Merged
mergify[bot] merged 3 commits into
mainfrom
feature/3398-rdp-view-only
Jun 14, 2026
Merged

Feature: Remote Desktop - View Only mode#3482
mergify[bot] merged 3 commits into
mainfrom
feature/3398-rdp-view-only

Conversation

@BornToBeRoot

Copy link
Copy Markdown
Owner

Changes proposed in this pull request

  • View Only mode for RDP

Related issue(s)

Copilot generated summary

Provide a Copilot generated summary of the changes in this pull request.

Copilot summary

This pull request introduces a new "View Only" mode for remote desktop sessions, allowing users to block keyboard and mouse input to the remote session. The implementation includes support for this feature across the model, settings, profiles, UI, and command logic, ensuring that view-only restrictions are respected throughout the application.

Key changes include:

Remote Desktop "View Only" Feature Implementation

  • Added a new ViewOnly property to RemoteDesktopSessionInfo, with logic to propagate this setting from global configuration, group, and profile levels. This ensures that the view-only state can be set and overridden at multiple configuration layers. [1] [2] [3] [4] [5] [6] [7] [8] [9]
  • Added localization strings for "View only" and its description, making the feature accessible and understandable in the UI. [1] [2]

User Interface and Command Enhancements

  • Updated the remote desktop tab context menu and tab header to display and control the "View Only" state, including an eye/eye-off icon and appropriate tooltips. Added a new menu item to toggle view-only mode and visual indicators in the tab header. [1] [2] [3] [4]
  • Introduced new converters for visibility binding and updated the UI to show/hide reconnect and disconnect options based on connection state. [1] [2] [3]

Command and Logic Restrictions for View Only Mode

  • Added logic to prevent actions such as fullscreen and sending Ctrl+Alt+Del when in view-only mode, ensuring users cannot bypass the restriction. This includes new command enable/disable logic and a command to toggle view-only state. [1] [2] [3]

Remote Desktop Control State Management

  • Added an IsViewOnly property to RemoteDesktopControl, initializing it from the session info and supporting property change notifications for UI updates. [1] [2]

To-Do

Contributing

By submitting this pull request, I confirm the following:

Copilot AI review requested due to automatic review settings June 14, 2026 21:56
@github-actions github-actions Bot added this to the next-release milestone Jun 14, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements a “View Only” mode for Remote Desktop (RDP) sessions, addressing #3398 by allowing users to monitor sessions while blocking keyboard/mouse input. The feature is wired end-to-end across settings, profiles/groups inheritance, UI toggles/indicators, and command enablement to prevent common bypass actions.

Changes:

  • Added a ViewOnly session flag with Global → Group → Profile inheritance and connect-dialog support.
  • Updated Remote Desktop UI (connect dialog, settings, profile/group dialogs, tab context menu + tab indicator) to toggle/reflect view-only state.
  • Restricted input-related actions (Fullscreen, Ctrl+Alt+Del) while view-only is active; added runtime toggling support in the RDP control.

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Website/docs/changelog/next-release.md Adds changelog entry for the new View Only RDP feature.
Website/docs/application/remote-desktop.md Documents View Only behavior, inheritance, and UI/command restrictions.
Source/NETworkManager/Views/RemoteDesktopSettingsView.xaml Adds global settings toggle for View Only.
Source/NETworkManager/Views/RemoteDesktopHostView.xaml Adds View Only toggle in tab context menu and a tab header indicator.
Source/NETworkManager/Views/RemoteDesktopConnectChildWindow.xaml Adds View Only option to the connect dialog.
Source/NETworkManager/Views/ProfileChildWindow.xaml Adds per-profile override + value controls for View Only.
Source/NETworkManager/Views/GroupChildWindow.xaml Adds per-group override + value controls for View Only.
Source/NETworkManager/ViewModels/RemoteDesktopSettingsViewModel.cs Persists the global View Only setting.
Source/NETworkManager/ViewModels/RemoteDesktopHostViewModel.cs Adds View Only command + disables bypass actions when active; passes ViewOnly into session creation.
Source/NETworkManager/ViewModels/RemoteDesktopConnectViewModel.cs Adds ViewOnly field to connect/connect-as dialog state.
Source/NETworkManager/ViewModels/ProfileViewModel.cs Adds profile-level View Only override/value properties.
Source/NETworkManager/ViewModels/GroupViewModel.cs Adds group-level View Only override/value properties.
Source/NETworkManager/ProfileDialogManager.cs Saves View Only override/value into ProfileInfo/GroupInfo.
Source/NETworkManager/Controls/RemoteDesktopControl.xaml.cs Implements View Only toggle/apply behavior in the RDP control.
Source/NETworkManager/Controls/DragablzTabHostWindow.xaml.cs Adds View Only command + disables bypass actions in drag-out tab host window.
Source/NETworkManager/Controls/DragablzTabHostWindow.xaml Adds View Only menu item + tab indicator in drag-out host context menu/templates.
Source/NETworkManager.Settings/SettingsInfo.cs Adds persisted setting RemoteDesktop_ViewOnly.
Source/NETworkManager.Settings/GlobalStaticConfiguration.cs Adds default RemoteDesktop_ViewOnly = false.
Source/NETworkManager.Profiles/ProfileInfo.cs Adds profile-level RemoteDesktop_OverrideViewOnly / RemoteDesktop_ViewOnly.
Source/NETworkManager.Profiles/GroupInfo.cs Adds group-level RemoteDesktop_OverrideViewOnly / RemoteDesktop_ViewOnly.
Source/NETworkManager.Profiles/Application/RemoteDesktop.cs Applies View Only inheritance logic into RemoteDesktopSessionInfo.
Source/NETworkManager.Models/RemoteDesktop/RemoteDesktopSessionInfo.cs Adds ViewOnly to the session model.
Source/NETworkManager.Localization/Resources/Strings.resx Adds localized strings for View Only label/description.
Source/NETworkManager.Localization/Resources/Strings.Designer.cs Regenerates strongly-typed accessors for new strings.
Files not reviewed (1)
  • Source/NETworkManager.Localization/Resources/Strings.Designer.cs: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Source/NETworkManager/Controls/RemoteDesktopControl.xaml.cs
Comment thread Website/docs/changelog/next-release.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 24 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • Source/NETworkManager.Localization/Resources/Strings.Designer.cs: Generated file

Comment on lines 510 to +514

ocx.SendKeys(info.KeyData.Length, info.ArrayKeyUp, info.KeyData);
}

/// <summary>
@mergify mergify Bot merged commit 86764c4 into main Jun 14, 2026
6 checks passed
@mergify mergify Bot deleted the feature/3398-rdp-view-only branch June 14, 2026 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: View-Only (Read-Only) Mode for RDP Sessions

2 participants