signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.59k stars 2.66k forks source link

[Signal Desktop] Preferences window shows up as a floating frame on secondary monitor. #4624

Closed stpr-dev closed 3 years ago

stpr-dev commented 3 years ago

Bug Description

I have two monitors with different resolutions (the active monitor is a 1440p monitor, the secondary monitor is 1080p monitor). Opening the preferences window on Signal Desktop causes the preferences window to show up on the secondary monitor, and additionally, it shows up as a floating frame on the non-active monitor. The resolution (scaling) of the floating frame also appears to be weird.

The secondary monitor issue appears to not be an issue particularly fixed to preferences, but other windows such as "About" or "Debug Log". These do no respect the primary monitor and always show up on the secondary monitor.

Steps to Reproduce

  1. Launch signal desktop.
  2. Open Preferences window (File -> Preferences).
  3. Expect to see preferences in the same window or a new window on the active monitor.

Actual Result:

Notice that the preferences window does not appear either in the same window or new window, and even on the active monitor. Instead, it is on a floating frame in the other monitor. I am unable to switch to it using the OS's window switcher. I am forced to minimize all windows on the secondary monitor to access this floating frame.

Expected Result:

Expect to see preferences in the same window or a new window, and also on the active monitor.

Screenshots

Multi-monitor screenshot:

Screenshot_20201030_203435-Copy

Platform Info

Signal Version:

v1.37.2

Operating System:

Distro: Arch Linux x64 (Kernel version: 5.9.2) Desktop Environment: KDE Plasma 5.20.2

Linked Device Version:

4.75.4

Link to Debug Log

Not sure that it helps, but here it is anyway.

mjsr commented 3 years ago

I can reproduce on Windows 10.

Moreover, I noticed this doesn't happen with all the dialogs for me. I've listed the ones that open in the same monitor as the Signal desktop app.

My setup: Signal Desktop app is in monitor 1 and the Preferences show in monitor 2. image

As I pointed, I found out that the behavior is not consistent with all dialogs although I understand that they might have underlying differences I am currently not familiar with. For that reason, I'll list them in two categories: the ones that open in a different monitor and the ones that behave as expected:

List of dialogs that open in a different monitor

List of dialogs that open in the same monitor

When I move the Signal window to the monitor 2 and reopen these dialogs, it opens in the same monitor where Signal is.

Versions

How to solve

From looking at the code for a brief moment (I'm not familiar with the app itself, just trying to help here), I would say:

My conclusion is to replicate similar code for the other window creation to make them relative to the main window.

Note: I am currently uncertain if I am able to sign the CLA (clause 4 - employer restrictions might apply :( ).

mjsr commented 3 years ago

I read into the Electron API and this will not be experienced on macOS.

On macOS the child windows will keep the relative position to parent window when parent window moves, while on Windows and Linux child windows will not move.

Source: https://www.electronjs.org/docs/api/browser-window#platform-notices

mjsr commented 3 years ago

As stated before, I don't believe I can sign the CLA therefore cannot create a pull request. However, nothing prevents me from doing on my repo: https://github.com/mjsr/Signal-Desktop/commit/c8ab2634c30fff8e1255962b328a19022472419a

Note that I'm not very familiar with the codebase, electron or JS in general. My intention is merely to help since I really believe in what the Signal app stands for.

fresheneesz commented 3 years ago

I definitely also see this with the current version of the desktop program. Would be nice to see that pull request pulled in.

scottnonnenberg-signal commented 3 years ago

Please watch for our next production release - we do expect this to be fixed there. If you're willing, we'd also love to have more windows users running our beta - you can install that with the links here: https://support.signal.org/hc/en-us/articles/360007318471-Signal-Beta

stpr-dev commented 3 years ago

I can confirm that (at least on Arch Linux with signal-desktop 1.40.0-1, this problem is resolved. I am closing the issue unless other platforms/users still have issues with it.

Trufax commented 1 year ago

I still can see this behavior for Signal 6.20.1 on KDE Desktop. It only affected pop out windows likes preferences and debug log. The main windows remembers it position even after open and closing.