Photoshop unexpectedly changes active layer opacity to 50% when pressing Option key while hovering over a UXP plugin button
Photoshop unexpectedly sets the active layer's opacity to exactly 50% whenever the Option key is pressed while the cursor is hovering over a button in a custom UXP plugin.
The issue occurs consistently, regardless of the active layer's initial opacity. Disabling the button's hover listener eliminates the problem.
The plugin does not contain any code that changes layer opacity. Its button "mouseenter" listener is intended to detect the Option key and update the button's displayed text.
This appears to be an unintended interaction between the UXP button's hover event handling, modifier-key detection, and Photoshop's native layer-opacity behavior.
Environment
- Application: Adobe Photoshop 27.11.0
- Operating system: macOS Tahoe 26.7.1
- Platform: Mac
- Plugin framework: Adobe UXP
Steps to reproduce
- Launch Photoshop and open a document containing at least one layer.
- Select a layer and set its opacity to any value.
- Open a custom UXP plugin with a "mouseenter" listener added to a button that detects the Option key and changes the buttons text.
- Move the cursor over the plugin's button, triggering its hover listener.
- Press the Option key while the cursor remains over the button.
Actual result
The active layer's opacity immediately changes to exactly 50%.
This occurs every time the steps are performed, regardless of the layer's initial opacity.
Expected result
Pressing the Option key while hovering over the plugin button should trigger only the intended plugin behavior: changing the button's displayed text.
The active layer's opacity should remain at its original value.
Diagnostic findings
The issue has been isolated to the button's hover listener:
- The problem is consistently reproducible when the hover listener is enabled.
- The active layer's opacity always becomes exactly 50%, regardless of its starting value.
- When the hover listener is disabled, the problem no longer occurs.
- The plugin contains no code intended to modify the active layer's opacity.
