Skip to content

fix: keep-on-taskbar mode acts like a normal window, no minimize-on-blur; v0.7.9#16

Merged
falkoro merged 7 commits into
masterfrom
fix/keep-on-taskbar-normal-window
Jun 11, 2026
Merged

fix: keep-on-taskbar mode acts like a normal window, no minimize-on-blur; v0.7.9#16
falkoro merged 7 commits into
masterfrom
fix/keep-on-taskbar-normal-window

Conversation

@falkoro

@falkoro falkoro commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Problem

Since v0.7.7 keepOnTaskbar defaults to ON, and on Windows/Linux every focus loss ran window.minimize() on an always-on-top window. Clicking anywhere else made the panel constantly play the minimize animation — the UI felt broken.

Fix

Keep-on-taskbar ON now means a normal window: not always-on-top, no auto-minimize on blur; dismiss via tray toggle or your own minimize. Keep-on-taskbar OFF keeps the tray-dropdown behavior (always-on-top, hide on blur, pinned rules unchanged). Toggling the setting re-applies window flags live. Settings copy updated.

Tests

  • New Rust flag-matrix regression test for should_hide_on_blur (passes)
  • Frontend: tsc clean, 1119/1119 vitest pass
  • plugin_engine::host_api::tests::env_api_respects_allowlist_in_host_and_js hangs locally on master too (pre-existing env flake, unrelated)
  • Windows behavior verification on a Win11 VM in progress; screenshots to follow as PR comment

🤖 Generated with Claude Code

…lur; v0.7.9

Blur no longer minimizes the panel when keep-on-taskbar is on (the
default since v0.7.7) — that mode now means a regular window: not
always-on-top, stays open on focus loss, dismissed via tray or the
user's own minimize. Tray-dropdown mode (setting off) keeps the old
always-on-top hide-on-blur behavior. Toggling the setting re-applies
window flags live. Adds a flag-matrix regression test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 10, 2026 19:54
@github-actions github-actions Bot added rust Pull requests that update rust code core labels Jun 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts the Windows/Linux panel behavior so keepOnTaskbar behaves like a standard window (no always-on-top and no blur-triggered minimize/hide), addressing the “constant minimize animation on focus loss” regression introduced when keepOnTaskbar became default-on.

Changes:

  • Disable blur-hide logic when keepOnTaskbar is enabled and toggle always-on-top based on the active mode.
  • Re-apply window flags immediately when keepOnTaskbar is toggled, and add a Rust regression test for the hide-on-blur flag matrix.
  • Bump app version to 0.7.9 and update the settings copy to match the new behavior.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/components/settings/system-settings-sections.tsx Updates user-facing description of keep-on-taskbar vs tray-dropdown behavior.
src-tauri/tauri.conf.json Version bump to 0.7.9.
src-tauri/src/panel/other.rs Makes always-on-top conditional on keep_on_taskbar for Windows/Linux.
src-tauri/src/panel/mod.rs Changes blur-hide decision to never auto-hide in keep-on-taskbar mode; adds regression test.
src-tauri/src/commands.rs Re-applies window flags live when keepOnTaskbar is toggled.
src-tauri/Cargo.toml Version bump to 0.7.9.
src-tauri/Cargo.lock Lockfile version bump for the openusage package.
package.json Frontend version bump to 0.7.9.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

</label>
<p className="text-xs text-muted-foreground mt-1.5">
On: dismissing the panel minimizes it, so the taskbar button stays while Tokenmaxxing runs. Off: the panel hides completely.
On: the panel acts like a normal window — it stays open when you click elsewhere and keeps its taskbar button. Off: tray dropdown — the panel floats on top and hides when it loses focus.
Comment on lines +4 to +8
//! as the dropdown. In keep-on-taskbar mode it behaves like a normal window
//! (not always-on-top, no blur-hide) so the user can keep working with the
//! panel open. In tray-dropdown mode it is borderless, always-on-top, shown
//! and positioned under the tray icon and hidden again when it loses focus
//! (the focus-out hide is wired up in `lib.rs` via `on_window_event`).
Comment on lines +254 to +256
// Flags are global atomics, so run this as a single sequential test
// to avoid races with other tests in the same process.
#[test]
@falkoro

falkoro commented Jun 10, 2026

Copy link
Copy Markdown
Owner Author

Windows 11 VM verification (v0.7.9 from this branch, dockur/windows container):

Win32-level assertion after showing the panel and clicking outside it:

panel rect: L=104 T=104 R=520 B=613
after-show     visible=True  minimized=False  fg=True
blur click at 1150,200
after-blur     visible=True  minimized=False  fg=False   <- focus lost, panel stays
after-blur-7s  visible=True  minimized=False  fg=False

On v0.7.8 this blur path ran window.minimize() unconditionally (keep-on-taskbar default ON). Panel now stays open as a normal window; tray toggle still dismisses.

falkoro and others added 4 commits June 10, 2026 22:18
…ving the moving v2.1 branch

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ty state

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…macOS builds compile

The v2.1 branch head (a3122e8) bumps pastey to 0.2, which changes
tauri_panel! macro expansion and breaks src/panel/macos.rs on a cold
build; master CI only passed via a warm rust-cache.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… per-session dead-list

A plain Command::output() on 'zsh -ilc' hung forever when the user's rc
files start shell integrations that never close stdout (observed with
cursor-agent's cursor-shell), stalling the whole probe batch and leaving
the local API without data. Timed-out shells are skipped for the rest of
the session so repeated env lookups don't eat the probe deadline.

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

falkoro commented Jun 10, 2026

Copy link
Copy Markdown
Owner Author

Before/after screenshots (repo rule for visual changes):

Before — browser/remote mode stretches the panel full-width, bare empty state before
After — card capped at panel width and centered, empty state with icon + hint after
Windows 11 — panel stays open (unfocused, PowerShell in front), no minimize-on-blur win11
Remote dashboard on LAN — live data after the probe-hang fix in this PR dash

(pr16-assets is a throwaway screenshots branch; delete after merge.)

…nce #1, tracked in #17)

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

falkoro commented Jun 10, 2026

Copy link
Copy Markdown
Owner Author

Drag verified on Windows 11 VM (keep-on-taskbar mode, edge drag strips):

before drag: L=104 T=104   grab at 312,114, drag by (+180,+120)
after drag:  L=284 T=224   -> moved exactly 1:1, no snap-back
state: visible=True minimized=False (also after a follow-up blur)

Also: macOS CI leg turns out to have been broken since #1 (macos.rs targets a tauri-nspanel API that doesn't exist at any v2.1 rev — filed #17). This PR makes CI gating honest: Windows/Linux required, macOS informational.

@github-actions github-actions Bot added the ci label Jun 10, 2026
get_webview_panel returns PanelHandle<R> (Arc<dyn Panel<R>>) at the
pinned rev — Panel itself is a trait now. Also import tauri::Manager at
file scope so tauri_panel!'s generated code resolves app_handle().
Fixes the macOS build that has been broken since #1 (issue #17).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@falkoro falkoro merged commit 9357a1b into master Jun 11, 2026
5 checks passed
@falkoro falkoro deleted the fix/keep-on-taskbar-normal-window branch June 11, 2026 06:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci core rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants