Martchus / syncthingtray

Tray application and Dolphin/Plasma integration for Syncthing
https://martchus.github.io/syncthingtray/
Other
1.68k stars 44 forks source link

Bad spawn position of settings dialog on Windows with scaling enabled #89

Closed twocoolbeans closed 3 years ago

twocoolbeans commented 3 years ago

Version 1.1.3 on Windows 10 (1920x1080 at 150% scaling) looks like first screenshot after opening settings the first time. Second screenshot shows second time opening settings. Opens fine at 100% scaling.

Screenshot Screenshot2
Martchus commented 3 years ago

I've changed the title so it is more obvious what the problem is. I hope I understood the problem correctly.

Are you using the Qt 5 or the Qt 6 based binary? It would be good to know whether the Qt version makes a difference. Are other dialogs, e.g. the about dialog and the QR-code dialog affected as well?

I'm not using scaling on Windows very often but I suppose the last time I've used it on a 4k display I haven't encountered a bad spawn position of the dialogs.

twocoolbeans commented 3 years ago

Using syncthingtray-1.1.3-x86_64-w64-mingw32.exe.zip. Have to use scaling on both Windows and Gnome due to tiny laptop screen.

Do you recommend trying syncthingtray-qt6-1.1.3-x86_64-w64-mingw32.exe.zip to solve the issue?

While we are here, was never quite sure what "syncthingctl-1.1.3-x86_64-w64-mingw32.exe.zip" is. How is it different?

Martchus commented 3 years ago

Do you recommend trying syncthingtray-qt6-1.1.3-x86_64-w64-mingw32.exe.zip to solve the issue?

This one is using Qt 6 (instead of Qt 5). I've mentioned it because it would be interesting to know whether the issue is reproducible with Qt 6 as well and if not than using this version would of course be a workaround.

While we are here, was never quite sure what "syncthingctl-1.1.3-x86_64-w64-mingw32.exe.zip" is. How is it different?

That's the command-line client for Syncthing which is also developed as part of this project. It is mentioned in README.md.

tomasz1986 commented 3 years ago

Are you using the Qt 5 or the Qt 6 based binary? It would be good to know whether the Qt version makes a difference. Are other dialogs, e.g. the about dialog and the QR-code dialog affected as well?

I can confirm the issue. The Qt version does not matter. Other windows, such as the QR-code one, are also affected. To reproduce, you need to scale the display quite significantly, e.g. in my case this is 150% on a small 1280x800 8.1" screen.

Once opened, the windows themselves can be made smaller manually, so the program is still usable, but it would be nice if it was possible to prevent them from going outside of the screen in the first place :wink:.

twocoolbeans commented 3 years ago

The Qt 6 version looks better not perfect, but better without any tweaking when using scaling. The issue still exists though, and I hope that a solution is eventually implemented.

Martchus commented 3 years ago

With the scaling applied your effective screen size is lower and hence the window simply doesn't fit on the screen with its default size. Because I'm centering the window on the screen it becomes misplaced and clipped. I haven't noticed it myself because I either have enough space or the window manager prevents the misplacement/clipping itself. Unfortunately I can reproduce this under Windows as well. I have now been working around it by maximizing the window to fit the available screen if it would otherwise overflow (and assigning a smaller window size so it doesn't overflow once "un-maximized").

Note that I've chosen a relatively large default size especially for the settings dialog because it looks much cleaner without scroll bars on a big-enough screen.

Martchus commented 3 years ago

Here's a binary if you'd like to test it: https://martchus.no-ip.biz/repo/experimental/win/syncthingtray-qt6-1.1-4-18352a6-issue-89-x86_64-w64-mingw32.exe

tomasz1986 commented 3 years ago

Would it be possible to compile an x86-32 binary as well? The system, where I have the issue, is 32-bit only.

Martchus commented 3 years ago

I can do that later/tomorrow. I've noticed that I should still improve the "and assigning a smaller window size" part anyways.

By the way, it is good to know that there are still people using the i686 build (although I haven't planned to remove the i686 builds in the near future).

Martchus commented 3 years ago

New builds: https://martchus.no-ip.biz/repo/experimental/win/syncthingtray-qt6-1.1-4-3fb6218-issue-89-i686-w64-mingw32.exe https://martchus.no-ip.biz/repo/experimental/win/syncthingtray-qt6-1.1-4-3fb6218-issue-89-x86_64-w64-mingw32.exe

tomasz1986 commented 3 years ago

I have tested the new build and it seems to work correctly now. The settings window opens in full screen mode and takes the whole space, excluding the taskbar 🙂.

By the way, it is good to know that there are still people using the i686 build

Yeah, it is an Intel Atom tablet. The CPU itself is technically "64-bit", but the UEFI is 32-bit and all the drivers are 32-bit only too. It has just 2GB of RAM anyway, so using a 32-bit OS makes sense regardless (even if the machine did support x86-64).

Martchus commented 3 years ago

Should be fixed.