mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-17 08:21:12 -05:00
[PR #21699] [MERGED] fix: align profile dropdown items and prevent drag clicks #97255
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?
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/21699
Author: @silentoplayz
Created: 2/21/2026
Status: ✅ Merged
Merged: 2/21/2026
Merged by: @tjbck
Base:
dev← Head:fix/dropdown-menu-drag-glitch📝 Commits (1)
8ba012ffix(ui): align profile dropdown items and prevent phantom synthetic drag clicks📊 Changes
1 file changed (+26 additions, -16 deletions)
View changed files
📝
src/lib/components/layout/Sidebar/UserMenu.svelte(+26 -16)📄 Description
Pull Request Checklist
Note to first-time contributors: Please open a discussion post in Discussions to discuss your idea/fix with the community before creating a pull request, and describe your changes before submitting a pull request.
This is to ensure large feature PRs are discussed with the community first, before starting work on it. If the community does not want this feature or it is not relevant for Open WebUI as a project, it can be identified in the discussion before working on the feature and submitting the PR.
Before submitting, make sure you've checked the following:
devbranch. PRs targetingmainwill be immediately closed.devto ensure no unrelated commits (e.g. frommain) are included. Push updates to the existing PR branch instead of closing and reopening.Changelog Entry
Description
Added
draggable="false"directly to fiveas="a"elements insrc/lib/components/layout/Sidebar/UserMenu.svelte(Playground,Admin Panel,Documentation,Releases,Keyboard Shortcuts) to natively discard ghost image cursor drags.select-nonetailwind utility across completely ALL dropdown elements identically to prevent the browser text selection listener from interfering withbits-uihover states.Changed
gap-3element padding uniformly into the conventional Open WebUImr-3 cursor-pointer truncateclasses to perfectly match default siblings natively.Fixed
Playground,Admin PanelandUser Guidelinesnodes insideUserMenu.svelte.goto()navigation closures.Additional Information
UserMenu.sveltedropdowns used throughout Open WebUI (both main sidebar and upper-right active chat header dropwdowns). Originally:Playground,Admin Panel,Documentation, andReleasesnodes were accidentally natively draggable since they leverage HTMLas="a"components—this caused ghost clones behind the user's cursor when accidentally mouse-swiping.gap-3instead of the project normmr-3).as="a"anchors entirely, it caused a massive usability regression: native users could no longer middle-clickAdmin Panelto "Open In New Tab".select-noneclass was removed from buttons within Svelte headless components, simply dragging the cursor away from a dropdown item and releasing the mouse outside the menu mysteriously fired an identical phantomgoto()response. This occurred natively because selecting/highlighting underlying text blindly suppresses the necessarypointerleavelistener thatbits-uirequires natively to deactivate internal hover states!as="a"tag, appendsdraggable="false"directly, uniformizes themr-3 cursor-pointerformatting horizontally, and uniformly forces standardselect-nonetailwind constraints unconditionally across the modal dropdown—completely resolving both the alignment glitches and all three drag phantom anomalies flawlessly.Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.