Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes and updates #47

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

Fixes and updates #47

wants to merge 10 commits into from

Conversation

wdbdesign
Copy link

@wdbdesign wdbdesign commented Jan 18, 2023

This pull request fixes two main issues:

  1. Windows on displays with a different scale factor than that of the primary display are repositioned incorrectly.
  2. The saved position of windows can be overwritten with bad data if the display changes resolution during a window enumeration. In this case the placement of the window in the new configuration will be overwritten with the window's current placement. This is fixed by aborting the enumeration if a display change is detected.

Other misc. changes:

  • Update project files (to platform toolset v143) and remove compiler warnings
  • Update shutdown logic to correctly remove tray icon and release resources
  • Remove unused code/files/logic
  • Add check to prevent multiple instances from running
  • Add a version resource and an "About" dialog
  • Update linker option to statically link all necessary libraries (no need to distribute DLLs)

Streamline some debug output during enumeration.
Add an "About..." context menu item (about window to be handled later).
Fix a bug in ~window() where KillTimer() return value is being misinterpreted.
Fix up shutdown sequence.  Kill timer and remove tray icon while main window still exists.
Add proper handling for "TaskbarCreated" registered message.
…t re-entrancy in get_windows() and in an attempt to avoid reposition() while also enumerating windows. But both are only called from message handlers within the (single-threaded) message loop, so only one will ever be executing at a time.
Add a Version resource (with initial version set to 1.1.0.1).
Change build settings to statically link all dependent libraries.
Update README to remove reference to deleted menu items.
@Qtax
Copy link

Qtax commented Jan 24, 2023

I've tried this version for a few minutes, it compiles and mostly works.
Some issues I've noticed when disconnecting and reconnecting an external screen:

  • Windows from different virtual desktops show up on current desktop
    • (Seems to mostly happen to Chrome, with a few windows open on 3 different virtual desktops).
  • Sometimes the Z-order of windows seems to change
  • Some minimized windows become restored
  • Spotify window (while being closed to tray) shows a window shadow without showing the window it self after reconnecting the main monitor, and also places the window on the wrong monitor.

(These issues are possibly also present in the original.)

@ulan-yisaev
Copy link

ulan-yisaev commented Feb 26, 2023

  • Windows from different virtual desktops show up on current desktop

The same in the current version.
I'll try this release on my workstation :)

@Vampire
Copy link

Vampire commented Apr 3, 2023

@wdbdesign as the owner of this repository said in #45:

I don't have time to give to this project anymore. [...] But, hey, this is why it is free software, so anyone can tweak it!

I don't expect your PR to be integrated here.

Instead it would be amazing if you would make your fork the official successor (unless @manutalcual would give you access to this repository) and could release and maintain it in the future. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants