Wayland window decorations mangled

Hi,

Because I use Linux+Wayland with a high DPI screen, I have to enable Wayland native support on Logic 2 to avoid having a blurry UI (the default on Electron apps, like Logic 2, is XWayland).

I do so using the following options: saleae-logic2 --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WaylandWindowDecoration

Unfortunately, Logic 2 ships with a buggy / out of date Electron, and I get mangled window decorations (see [Bug]: wayland window decorations mangled and not clickable · Issue #34820 · electron/electron · GitHub).

This is because Logic 2 uses Electron 19.0.6.
This bug is fixed in 19.0.8.
The latest stable Electron 19 is 19.1.9.

Could you please bump the version so we could benefit from a stable Electron version?
Thank you very much!

We’ve been putting off updating to the latest major version due to some larger work needed, but updating to the latest minor version should (hopefully) be pretty easy. We’ll test this out.

Thank you very much!

@saleae-clement

We have a test build now, would you mind writing into support so we can send you an out-of-band build, to have you test it?
https://contact.saleae.com/hc/en-us/requests/new

I would gladly test it. I sent the ticket!

Thank you for the test build. It works perfectly fine on native Wayland:
./Logic-2.4.8-fix-electron-19.1.9.AppImage --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations

However, I observed some errors in the logs, even if I didn’t saw any effects:

./Logic-2.4.8-fix-electron-19.1.9.AppImage --trace-warnings

/tmp/.mount_Logic-PS7Vxg ~/Downloads
~/Downloads
ATTENTION: Sandboxing of this app has been disabled since the user namespace feature of your OS is disabled.
Please enable user namespaces or use the deb package.
Environment
  Executable path: /tmp/.mount_Logic-PS7Vxg/Logic
  Executable directory: /tmp/.mount_Logic-PS7Vxg
  Original working directory: /home/clement/Downloads
  Current working directory: /tmp/.mount_Logic-PS7Vxg
  Process ID: 14348
(node:14348) UnhandledPromiseRejectionWarning: Error: Exited with code 9
    at ChildProcess.<anonymous> (/tmp/.mount_Logic-PS7Vxg/resources/app.asar/node_modules/cross-unzip/index.js:38:21)
    at ChildProcess.emit (node:events:526:28)
    at ChildProcess._handle.onexit (node:internal/child_process:291:12)
(Use `Logic --trace-warnings ...` to show where the warning was created)
(node:14348) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
[14423:0408/120521.157886:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[14423:0408/120522.989719:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[14423:0408/120524.538458:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!

2.4.7

|            | Xorg | XWayland | Wayland |
|------------|------|----------|---------|
| JS bug     |      |          |         |
| OpenGL bug |      |    X     |    X    |

2.4.8 test build

|            | Xorg | XWayland | Wayland |
|------------|------|----------|---------|
| JS bug     |  X   |    X     |    X    |
| OpenGL bug |      |    X     |    X    |

The OpenGL message appears when hovering the menu.

Glad to hear it’s working! We’ll merge that and include it in the next release.

We’ve been aware of that JS error for quite some time, it’s not important. I didn’t realize it wasn’t in the production app. It’s actually possible it only appears for non-production builds like this one, where more debugging features are enabled by default. In this case, probably the react dev tools extension we use, which should be disabled in production builds.