mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 11:28:35 -05:00
[GH-ISSUE #22744] issue: Secondary Hover Menus (e.g., Download/Move in Chat Menu) Disappear Before Selection
#58472
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @silentoplayz on GitHub (Mar 17, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/22744
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.8.10
Ollama Version (if applicable)
v0.18.0
Operating System
Ubuntu 24.04.4 LTS
Browser (if applicable)
Mozilla Firefox Snap for Ubuntu v148.0.2 (64-bit) / Google Chrome v146.0.7680.80 (Official Build) (64-bit)
Confirmation
README.md.Expected Behavior
When hovering over the
DownloadorMoveoptions from a chat's 3-dot (hamburger) menu in the sidebar, the secondary sub-menu should remain open and accessible long enough for the user to move their cursor into it and make a selection.Actual Behavior
The secondary
DropdownSubmenu frequently disappears the moment the user attempts to move their mouse from the primary menu item (e.g.,Download) into the rendered sub-menu. It is extremely difficult to catch the menu in time before themouseleaveevent fires and destroys the component.Steps to Reproduce
v0.8.10version on Ubuntu 24.04.4 LTS using Firefox v148.0.2.Downloadoption. A secondary sub-menu will appear to the side.Downloadinto the new sub-menu to clickPlain text (.txt).Logs & Screenshots
https://github.com/user-attachments/assets/c09880a8-937e-4b73-bafd-3e712a5c334d
Additional Information
The bug may have been introduced by styling changes in
rc/lib/components/common/DropdownSub.svelte. ThesideOffsetproperty defaults to8pixels. Because the sub-menu is physically separated from the trigger element by an 8px dead zone, moving the mouse across this gap triggers themouseleaveevent on the trigger element before themouseenterevent can fire on the sub-menu content.This can be fixed by implementing one of the following solutions:
sideOffset = 0(or a negative margin) so the elements physically overlap, maintaining a continuous hover state.setTimeout) to thehandleMouseLeavefunction in DropdownSub.svelte to give the user 100-200ms to cross the gap before the menuopenstate is forced tofalse.@silentoplayz commented on GitHub (Mar 17, 2026):
This issue is more widespread than simply the chat's
DownloadandMoveoptions in a chat's 3-dots (hamburger) menu icon.I've also traced the issue to the 3-dots (hamburger) menu icon for any note found in the
Notessection of theWorkspace.And also with the 3-dots (hamburger) menu icon found on the
Chatspage in thePlaygroundsection.@majiayu000 commented on GitHub (Mar 21, 2026):
Hi, I've been looking into this and traced the root cause.
Proposed approach: Fix DropdownSub.svelte by adding a CSS invisible bridge (pseudo-element or padding) to span the 8px sideOffset gap, preventing mouseleave from firing during cursor transit. This is the cleanest approach — it preserves the visual gap while maintaining hover continuity. Alternative: add a ~150ms debounce to handleMouseLeave. The CSS bridge is preferred as it's zero-JS and handles all cursor speeds. Test across all affected locations (chat sidebar, Notes workspace, Playground Chats).
I'll open a draft PR shortly. Happy to adjust based on your preference.
@tjbck commented on GitHub (Mar 24, 2026):
Should be addressed.
@silentoplayz commented on GitHub (Mar 24, 2026):
I can confirm the reported issue has been resolved on the
devbranch. Thanks!