#50541: fix: prevent borders and smearing in transparent frameless/client frame windows on Linux
Description of Change
Electron 41.x added CSD to frameless windows, which introduced a regression where transparent frameless windows would have 1px borders.
Fixing this issue also addressed another problem with transparency on Linux (going back years for client frames) where transparent windows would smear and get corrupted as windows were dragged around. The underlying cause was the same: parts of the window lifecycle, painting, and opacity checks did not account for transparency.
Checklist
- PR description included
- I have built and tested this PR
-
npm testpasses - tests are changed or added
- relevant API documentation, tutorials, and examples are updated and follow the documentation style guide
- PR release notes describe the change in a way relevant to app developers, and are capitalized, punctuated, and past tense.
Release Notes
Notes: Fixed a regression on Linux where transparent frameless windows would have visible borders. Also fixed a longstanding issue where transparent windows on Linux could show smeared and glitched content as windows moved around.
Backports
Semver Impact
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron