8000 Tags · bleze/AlwaysOnTop · GitHub
[go: up one dir, main page]

Skip to content

Tags

Tags

v0.6.0

Toggle v0.6.0's commit message
Add Restart as Administrator and leave Task Manager's pinning to itself

Global hooks from a non-elevated process never load into elevated windows
(Task Manager, admin consoles, ...), so those got none of our system menu
items. The tray menu now has a Restart as Administrator item, shown only
when not already elevated, that relaunches through UAC and hands off like
a self-update: hidden windows stay hidden and the new instance picks them
back up. The tray tooltip says "(Administrator)" when elevated.

Task Manager keeps its own persisted Always on top setting that nothing
outside it can read or change, so toggling its topmost state ourselves
just left the two out of sync. Its system menu no longer gets our Always
on Top item (Hide Window and Hide in Tray remain), and Manage Windows
never lists it as pinned.

Bump version to 0.6.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

v0.5.1

Toggle v0.5.1's commit message
Replace tray-icon toggle with a separate Hide in Tray action

Instead of a global tray-menu toggle deciding whether every hidden window
gets a tray icon, the system menu now has its own Hide in Tray item next to
Always on Top and Hide Window. Windows hidden that way are tagged with an
extra property and get a tray icon; plain Hide Window no longer creates one.
This lets important windows sit one click away in the tray while irrelevant
ones are hidden completely.

The "Hidden Windows in Tray" menu item and its registry setting are removed.
The tray sync timer now only runs while there are tray icons to keep in
sync, and Manage Windows shows "Hidden in Tray" for those windows.

Bump version to 0.5.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

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.
0