Uh oh!
There was an error while loading. Please reload this page.
menu: the mouse wheel moves the list, not the selection - #19494
Open
KrisEnigma wants to merge 1 commit into
Open
menu: the mouse wheel moves the list, not the selection#19494KrisEnigma wants to merge 1 commit into
KrisEnigma wants to merge 1 commit into
Conversation
Ozone and GLUI already scroll from pointer.y_accel when you drag. The wheel was MENU_ACTION_UP/DOWN in menu_driver.c for every driver, so a notch stepped the highlight the way a d-pad does. A wheel_scroll hook lets a driver take the notch as list movement; XMB and RGUI leave it NULL and keep the old step. Ozone queues notches and spends them in the same clamp as drag. Three rows per notch. It also turns cursor mode on, because a wheel moves no pointer, and without that the hover code never runs. GLUI uses the animated scroll it already had for swipes. Going back to the Ozone sidebar hides the thumbnail bar. That rewraps every entry and used to re-center on the selection, which a pointer leaves wherever it was resting. preserve_scroll_on_compute keeps the same top entry in view, the way Material UI already does when geometry changes without the list changing.
KrisEnigmaforce-pushed
the
fix/menu-wheel-scroll
branch
from
September 4, 2026 21:10
8d3264e to
360ebbaCompare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
menu: the mouse wheel moves the list, not the selection
Closes#9633.
The wheel has always been
MENU_ACTION_UP/DOWNinmenu_driver.c. Every driver stepped the selection, one entry per notch. That is what a d-pad does. It is a poor match for a wheel, and it is why Ozone and GLUI feel broken next to their own click-and-drag, which already moves the list.A
wheel_scrollhook onmenu_ctx_driver_tlets a driver take the notch as list movement. Ozone and GLUI implement it. XMB and RGUI leave it NULL, so they keep the old step: their list position is the selection.Ozone queues notches and spends them where drag scrolling already clamps, so the wheel obeys the same top and bottom. Three rows a notch. Pointer over the sidebar scrolls the sidebar. Cursor mode is turned on because a wheel moves no pointer, and without that the hover code never runs, so the entry under the pointer is selected once the list settles.
GLUI reuses the animated scroll it already had for swipes. It declines while fullscreen thumbnails or a scrollbar drag are active.
The last piece is Ozone going back to the sidebar. That hides the thumbnail bar, which rewraps every entry and used to re-center on the selection. A pointer leaves the selection wherever it was resting, so the list jumped.
preserve_scroll_on_computekeeps the same top entry in view. Material UI already does this when geometry changes without the list changing.Independent of #19493, which reworks the Ozone pointer highlight. Either can go in first. Together they read better, since that one stops a highlight showing while the pointer rests between rows.
How to verify
Ozone (and GLUI, if you have a mouse):
Tested on an LG OLED65G5 (webOS 10.3.1) with the Magic Remote pointer and wheel, Ozone with thumbnails on.