Skip to content

ozone: the mouse highlight goes where the mouse is - #19493

Open
KrisEnigma wants to merge 1 commit into
libretro:masterfrom
KrisEnigma:fix/ozone-sidebar-hover
Open

ozone: the mouse highlight goes where the mouse is#19493
KrisEnigma wants to merge 1 commit into
libretro:masterfrom
KrisEnigma:fix/ozone-sidebar-hover

Conversation

@KrisEnigma

Copy link
Copy Markdown
Contributor

ozone: the mouse highlight goes where the mouse is

The Ozone sidebar cached a hovered category for the next click and drew nothing. So the cursor sat on the active tab while the pointer was on another row. The entry list already follows the mouse. The sidebar now does too.

The tab you are actually on stays readable through its highlighted label, which is the same cue you get when focus is in the entry list. The box itself follows the pointer.

Both lists also drew a highlight while the pointer sat between rows, over the header, the footer, or the thumbnail bar, pointing at something the next click would not reach. Nothing is drawn there now.

The entry cursor comes from ozone->selection, which the hover auto select only reaches on the following frame, and not at all while the accel guard holds it back. The box stays hidden until it would land under the pointer. The crossfade from the previous entry is skipped when a mouse is driving, since that row has already been left.

A keypress clears cursor mode. Every highlight returns with it.

How to verify

Ozone, mouse or a TV pointer:

  • Hover the left column. One box tracks the pointer. The active tab keeps its selected colour.
  • Hover empty space (gaps, header, footer, thumbnail bar). No box.
  • Sweep the entry list quickly. The highlight is the row under the pointer, or nothing. No trail on the previous row.
  • Hover a row, then use the d-pad. The box jumps back to the keyboard selection.

The sidebar cached a hovered category for the next click without
showing it, so the cursor sat on the active tab while the pointer was
somewhere else. It now follows the pointer down the sidebar; the tab
in use is still legible through its highlighted label, which is how it
already reads when focus is in the entry list.
Both lists also drew a highlight while the pointer rested between rows,
over the header, the footer or the thumbnail bar, pointing at something
the next click would not reach. Nothing is drawn there now. And because
the entry cursor comes from ozone->selection, which the hover auto
select only reaches on the following frame, the box could sit a frame
behind the pointer, or several while the accel guard held it back. It
stays hidden until it would land under the pointer, and the crossfade
from the previous entry is skipped when a mouse is driving, since that
row has already been left.
A keypress clears cursor mode, and every highlight returns with it.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KrisEnigma