Tags: bleze/AlwaysOnTop
Tags
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.
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.
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.
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>
PreviousNext