Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.80.0 OS Version: Ubuntu 23.04 the panel a file Shift Terminal icon changes Shift key Terminal icon changes again When pressing in the editor, the terminal icon should stay the same. When pressing in the editor, the terminal icon switches to a different icon. The issue might haven been introduced here
FYI I've removed the prefix to the issue's title, since the observed behavior was actually our intention. I can see how on Windows and Linux, reacting on <kbdShift</kbdmight be too aggressive, so I propose doing the new behavior (no need to hover) only when <kbdAlt</kbdis pressed, while leaving <kbdShift</kbdto behave like before, on Windows and Linux.
Verification: <kbdAlt</kbdshould toggle alt state of commands no matter what On Windows and Linux only: <kbdShift</kbdshould toggle alt state of commands only when hovering them

Discussion:
*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { $, addDisposableListener, append, asCSSUrl, EventType, IModifierKeyStatus, ModifierKeyEmitter, prepend } from 'vs/base/browser/dom'; </del> <ins> import { $, addDisposableListener, append, asCSSUrl, EventType, ModifierKeyEmitter, prepend } from 'vs/base/browser/dom'; </ins> import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { ActionViewItem, BaseActionViewItem, SelectActionViewItem } from 'vs/base/browser/ui/actionbar/actionViewItems'; import { DropdownMenuActionViewItem, IDropdownMenuActionViewItemOptions } from 'vs/base/browser/ui/dropdown/dropdownActionViewItem';

} if (this._menuItemAction.alt) { <del> const updateAltState = (keyStatus: IModifierKeyStatus) => { const wantsAltCommand = !!this._commandAction.alt?.enabled && (keyStatus.altKey || ((isWindows || isLinux) && keyStatus.shiftKey)); </del> <ins> let mouseOverOnWindowsOrLinux = false; const updateAltState = () => { const wantsAltCommand = !!this._menuItemAction.alt?.enabled && ( this._altKey.keyStatus.altKey || (this._altKey.keyStatus.shiftKey && mouseOverOnWindowsOrLinux) ); </ins> if (wantsAltCommand !== this._wantsAltCommand) { this._wantsAltCommand = wantsAltCommand;

}; this._register(this._altKey.event(updateAltState)); <del> updateAltState(this._altKey.keyStatus); </del> <ins> if (isWindows || isLinux) { this._register(addDisposableListener(container, 'mouseleave', _ => { mouseOverOnWindowsOrLinux = false; updateAltState(); })); this._register(addDisposableListener(container, 'mouseenter', _ => { mouseOverOnWindowsOrLinux = true; updateAltState(); })); } updateAltState(); </ins> } }