Skip to content

v1.2.1 - no more console window during updates

Choose a tag to compare

@xmrius xmrius released this 20 Aug 11:08
· 22 commits to main since this release

Fixes to the in-app update and to controls that went blank when hovered.

Fixed

  • Hovering turned controls white and swallowed their text. Radio buttons,
    checkboxes and the column headers of the clip list took their hover colours
    from a ttk state table that configure() cannot reach — the same trap the
    dropdowns fell into earlier. All of them are set through map() now, along
    with the slider, the spinbox and read-only entry fields.

  • A console window appeared during an update and stayed. The swap script was
    started with DETACHED_PROCESS, which leaves the process without a console —
    so tasklist, find and ping each opened one of their own. It is now
    started with CREATE_NO_WINDOW, which hands it an invisible console that the
    child processes inherit.

  • A failure while closing could block the update. The swap script waits for
    the application to disappear before touching any files, and gives up after 60
    seconds. If saving the settings or clearing the temporary folder raised on the
    way out, the window closed but the process stayed alive — and the update
    quietly did nothing. Both tools now treat every cleanup step as optional and
    always reach the actual shutdown.

One caveat

The script that performs a swap always comes from the version being replaced,
not from the one being installed. So this fix takes effect from the next
update onwards — updating to 1.2.1 itself still runs the old script.

If an update ever looks stuck, %TEMP%\dubstage_update_*.log records every
step, and the files it replaced are backed up next to it.

Full history in CHANGELOG.md.