sp; mf ... leaves cursor visible in the inactive pane #22203

Open
opened 2026-01-31 08:06:21 +00:00 by claunia · 8 comments
Owner

Originally created by @vefatica on GitHub (Sep 3, 2024).

When I, for example, wt sp cmd.exe; mf 1, the cursor remains visible in the inactive pane. This is unlike moving focus in other situations; normally the cursor is hidden in an inactive pane.

Originally created by @vefatica on GitHub (Sep 3, 2024). When I, for example, `wt sp cmd.exe; mf 1`, the cursor remains visible in the inactive pane. This is unlike moving focus in other situations; normally the cursor is hidden in an inactive pane.
claunia added the Issue-BugPriority-3Product-TerminalArea-TerminalControl labels 2026-01-31 08:06:22 +00:00
Author
Owner

@zadjii-msft commented on GitHub (Sep 3, 2024):

Version number?

@zadjii-msft commented on GitHub (Sep 3, 2024): Version number?
Author
Owner

@vefatica commented on GitHub (Sep 3, 2024):

That was the 20 release and the 21 preview. I just updated and the same is true of WindowsTerminal 1.22.2408.23002 (preview) and WindowsTerminal 1.21.2408.23001.

And I'm seeing this for the first time when starting the 1.21 release.

image

That's apparently from

        {
            "id": null,
            "keys": "ctrl+shift+w"
        },

Any idea?

@vefatica commented on GitHub (Sep 3, 2024): That was the 20 release and the 21 preview. I just updated and the same is true of WindowsTerminal 1.22.2408.23002 (preview) and WindowsTerminal 1.21.2408.23001. And I'm seeing this for the first time when starting the 1.21 release. ![image](https://github.com/user-attachments/assets/d85b1b6b-2e17-430e-844a-953851542ab4) That's apparently from ``` { "id": null, "keys": "ctrl+shift+w" }, ``` Any idea?
Author
Owner

@vefatica commented on GitHub (Sep 9, 2024):

When I, for example, wt sp cmd.exe; mf 1, the cursor remains visible in the inactive pane. This is unlike moving focus in other situations; normally the cursor is hidden in an inactive pane.

Any more on this?

@vefatica commented on GitHub (Sep 9, 2024): > When I, for example, wt sp cmd.exe; mf 1, the cursor remains visible in the inactive pane. This is unlike moving focus in other situations; normally the cursor is hidden in an inactive pane. Any more on this?
Author
Owner

@vefatica commented on GitHub (Sep 14, 2024):

If you have looked into this you've probably figured out that it's a matter of timing. I can reproduce the undesirable behavior (cursor showing in the inactive pane) with simulated keystrokes (using TCC's KEYSTACK command).

keystack alt-shift-+ alt-left

If I introduce a delay (9/18 second below) before moving focus, the cursor is not showing in the inactive pane.

keystack alt-shift-+ /w9 alt-left

@vefatica commented on GitHub (Sep 14, 2024): If you have looked into this you've probably figured out that it's a matter of timing. I can reproduce the undesirable behavior (cursor showing in the inactive pane) with simulated keystrokes (using TCC's KEYSTACK command). `keystack alt-shift-+ alt-left` If I introduce a delay (9/18 second below) before moving focus, the cursor is not showing in the inactive pane. `keystack alt-shift-+ /w9 alt-left`
Author
Owner

@lhecker commented on GitHub (Sep 16, 2024):

And I'm seeing this for the first time when starting the 1.21 release.

Is the null from you or automatically generated by us? I'm assuming the latter. In that case I think it's a bug in #17162 and I suppose we fail to remove bindings that have no action?

@lhecker commented on GitHub (Sep 16, 2024): > And I'm seeing this for the first time when starting the 1.21 release. Is the `null` from you or automatically generated by us? I'm assuming the latter. In that case I think it's a bug in #17162 and I suppose we fail to remove bindings that have no action?
Author
Owner

@lhecker commented on GitHub (Sep 16, 2024):

I believe this issue also happens even if all you do is unfocus the application, while the terminal is currently busy with processing output that doesn't move the cursor (= pure VT).

DispatchTimer::Stop neither cancels the pending nor blocks until the queued event is done:

If Stop is called when the timer interval has just elapsed, it's possible that the timer already queued a Tick event. This event will still be raised.

So, when we do "stop the timer, then disable the cursor", we may still get a blink tick.

@lhecker commented on GitHub (Sep 16, 2024): I believe this issue also happens even if all you do is unfocus the application, while the terminal is currently busy with processing output that doesn't move the cursor (= pure VT). `DispatchTimer::Stop` neither cancels the pending nor blocks until the queued event is done: > If Stop is called when the timer interval has just elapsed, it's possible that the timer already queued a Tick event. This event will still be raised. So, when we do "stop the timer, then disable the cursor", we may still get a blink tick.
Author
Owner

@vefatica commented on GitHub (Sep 18, 2024):

I don't think I put that null in there.

@vefatica commented on GitHub (Sep 18, 2024): I don't think I put that `null` in there.
Author
Owner

@vefatica commented on GitHub (Sep 18, 2024):

I found other ways to leave the cursor showing in an inactive pane also. One is to just do the keystrokes quickly enough ... Alt-Shift-+, Alt-Left.

@vefatica commented on GitHub (Sep 18, 2024): I found other ways to leave the cursor showing in an inactive pane also. One is to just do the keystrokes quickly enough ... Alt-Shift-+, Alt-Left.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#22203