On Linux the window was created fully transparent to draw rounded corners (#1982), but on WebKitGTK a transparent window composites as transparent whenever its web process is too busy to repaint damaged regions (for example during a library backup). Interacting with the app then makes it appear to turn invisible, showing the desktop through the window. Make the window opaque everywhere: the main window in lib.rs and the reader/extra windows in nav.ts. Drop the rounded-window treatment (hasRoundedWindow=false) so no rounded 1px border floats on the now square opaque window, and give the Linux loading placeholders a solid background. An opaque window retains its last painted frame instead of going invisible; the tradeoff is square corners on Linux. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -557,7 +557,10 @@ export class NativeAppService extends BaseAppService {
|
||||
override hasWindow = !(OS_TYPE === 'ios' || OS_TYPE === 'android');
|
||||
override hasWindowBar = !(OS_TYPE === 'ios' || OS_TYPE === 'android');
|
||||
override hasContextMenu = !(OS_TYPE === 'ios' || OS_TYPE === 'android');
|
||||
override hasRoundedWindow = OS_TYPE === 'linux';
|
||||
// No desktop platform draws a rounded, transparent window anymore: the Linux
|
||||
// window is opaque with square corners to avoid the WebKitGTK "turns
|
||||
// invisible while busy" bug (#3682).
|
||||
override hasRoundedWindow = false;
|
||||
override hasSafeAreaInset = OS_TYPE === 'ios' || OS_TYPE === 'android';
|
||||
override hasHaptics = OS_TYPE === 'ios' || OS_TYPE === 'android';
|
||||
override hasUpdater =
|
||||
|
||||
Reference in New Issue
Block a user