https://bugs.kde.org/show_bug.cgi?id=508684

cwo <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #31 from cwo <[email protected]> ---
Created attachment 187887
  --> https://bugs.kde.org/attachment.cgi?id=187887&action=edit
diagram showing the areas where hovering triggers

It's not a graphics card driver bug, it's a FolderView bug. I can reproduce it
and figured out the cause.

Consider the attached diagrams. There's two things that fight about what is
hovered, the delegate and the overall view. They disagree about when something
is hovered.

The green lines show the exact areas where the delegates themselves starts to
think they're hovered. The blue line shows approximately where the view begins
to consider them hovered.

As you can see, there's a small gap where the green part goes further than the
blue line. If the pointer crosses slowly enough, the delegate will say "hey,
I'm hovered now!", the view will say "no you're not", and no hover happens.
Then when you move further up, the delegate will say "hey, nothing's changed,
all good", and the view is all like "well, I guess you're hovered now, but I
don't tell things when they're hovered, I only tell them when they're not
hovered, so my job is done". In the end, the mouse is squarely over the icon,
but not considered hovered.

So as far as I can tell this can only happen

- with two-line labels, because otherwise the blue line is always outside the
green line
- without a row of icons directly below them, as otherwise the green areas
directly touch, and then there doesn't seem to be an issue - in that case the
green and blue lines are the same
- if you move rather slowly over the relevant parts - if you're moving quickly,
you might skip the gap completely, and then both immediately agree that they
should be hovered. That's why it happens inconsistently.

What I don't know yet is

- why the blue line is where it is, and not aligning with the blue line - might
be a Qt GridView issue, or more likely FolderView is doing something wrong
- how to fix this - the best solution would obviously be "don't have several
components fight over when one of them is hovered", but that requires cleaning
up the logic across several long and very complex files crammed full of arcane
and fragile functionality where everything depends on everything else.
Long-term something that 100% has to happen, but also a lot of work and it
carries the risk of breaking lots of things.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to