Skip to content

Tags: bleze/AlwaysOnTop

Tags

v0.4.6

Toggle v0.4.6's commit message
Give the hook DLL a per-version filename to fix self-update failures

Root-caused the "update downloads but never applies" reports: the hook
DLL is injected via global hooks into essentially every window-owning
process (confirmed ~19 processes - Brave, Discord, svchost, etc. - still
had it mapped after this app's own unhook+FreeLibrary). Windows only
releases each process's mapping lazily, so renaming/replacing the DLL in
place failed with ERROR_ACCESS_DENIED as long as any straggler still had
the old copy open, silently rolling the update back with no indication
to the user.

Give the DLL a version-suffixed filename (AlwaysOnTopHook-<version>.dll)
via the CMake target's OUTPUT_NAME. An update now only ever adds a new
file under its own version's name instead of touching one that might
still be in use - nothing to rename or delete. The exe is unaffected
(only this process ever loads it) and keeps the existing rename-in-place
swap, now with retries for transient AV-scan locks on the fresh download
and a failure balloon plus hook reinstall if it still doesn't work out.
Stale hook DLLs (including the old fixed-name one) are swept up on
startup once nothing still has them mapped.

Bump version to 0.4.6.

v0.4.5

Toggle v0.4.5's commit message
Stop self-update from restoring every hidden window on the desktop

Releasing the hook DLL for an in-place update called the same teardown
used on real quit, which walks every top-level window and force-shows
any it had hidden via Hide Window, clearing their hidden marker in the
process. That could unhide unrelated windows (e.g. a browser) mid-update.

Split the DLL teardown into an unhook-only export used during self-update
(leaves window state untouched, since the relaunched process picks the
same windows back up) and the full stop-and-restore used on actual quit.

Bump version to 0.4.5.

v0.4.4

Toggle v0.4.4's commit message
Fix duplicate separator in Chromium system menu rebuilds

When a host rebuilds its native system menu (e.g. Brave) without
removing our stray separator, we were appending a second one on top
of it. Skip re-adding the separator if the menu's last item already
is one.

Bump version to 0.4.4.

v0.4.0

Toggle v0.4.0's commit message
Add automatic update checks and a manual tray menu option

Checks GitHub's latest release on startup and every 24h in the
background; if newer, downloads the installer and launches it
silently. Also adds a "Check for Updates" tray menu item for an
on-demand check. The installer now installs per-user (no UAC) and
uses Restart Manager (CloseApplications/RestartApplications) to close
and relaunch the running app during a silent update.

Version is now generated once from CMakeLists.txt's project version
into Version.h, shared by the update-check logic and the About
dialog, instead of being hand-edited in multiple places.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>