Skip to content

Conversation

@SaschaCowley
Copy link
Member

Link to issue number:

Fixes #18938

Summary of the issue:

Attempting to control NVDA via the Remote Access feature fails on recent alphas.

Description of user facing changes:

It works again.

Description of developer facing changes:

Some constants from winUser have been made enum members in winBindings.user32.

Description of development approach:

  • Removed the definitions of INPUT, KEYBDINPUT, HARDWAREINPUT, MOUSEINPUT, INPUT_TYPE and KEYEVENTF from _remoteClient.input.
  • Changed Remote Access's keyboard code to use structures from winBindings.user32.
  • Also moved duplicate constants from winUser and added deprecation code and notes to the user docs.

Testing strategy:

Ran NVDA from source, and connected as follower. Controlled with another computer (running 2025.2rc1).

Known issues with pull request:

None known.

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@SaschaCowley SaschaCowley marked this pull request as ready for review September 19, 2025 03:36
@SaschaCowley SaschaCowley requested a review from a team as a code owner September 19, 2025 03:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR fixes Remote Access functionality as a follower by migrating keyboard input code from deprecated winUser constants to new enum members in winBindings.user32. The changes consolidate duplicate constant definitions and update all affected code to use the new standardized structures.

Key changes:

  • Removed duplicate INPUT-related structures and constants from _remoteClient.input
  • Updated all keyboard input code to use winBindings.user32 enums instead of winUser constants
  • Added deprecation warnings for moved constants in winUser

Reviewed Changes

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

Show a summary per file
File Description
user_docs/en/changes.md Documents deprecation of INPUT and KEYEVENTF constants from winUser
source/winUser.py Adds deprecation symbols and removes duplicate constants
source/winBindings/user32.py Defines new KEYEVENTF and INPUT_TYPE enums with proper documentation
source/keyboardHandler.py Updates to use new KEYEVENTF.KEYUP enum
source/easeOfAccess.py Migrates to winBindings.user32 INPUT_TYPE and KEYEVENTF enums
source/brailleInput.py Updates keyboard input to use new enum constants
source/_remoteClient/input.py Removes duplicate structures and uses winBindings.user32 types

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

SaschaCowley and others added 2 commits September 19, 2025 14:41
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@seanbudd seanbudd enabled auto-merge (squash) September 19, 2025 04:55
@seanbudd seanbudd merged commit 5a557d0 into master Sep 19, 2025
40 checks passed
@seanbudd seanbudd deleted the fixRemoteFollower branch September 19, 2025 05:25
@github-actions github-actions bot added this to the 2026.1 milestone Sep 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Controlling a computer via Remote does not work

3 participants