Review Request 126175: Click on item in plasmashell case focus stays on last pointed item

David Edmundson david at davidedmundson.co.uk
Mon Nov 30 09:57:54 UTC 2015



> On Nov. 29, 2015, 11:25 p.m., David Edmundson wrote:
> > >MoseMove is too expensive event to be redirect, it can cause problems on slow CPU's.
> > 
> > I don't see how. 
> > It's no different to when the mouse is actually over the containment.
> > 
> > The case for when you're in the 4px margin at the edge of the panel seems like it must be tiny.
> 
> Anthony Fieroni wrote:
>     First of all, you don't understaind the problem at all. Every postEvent is expensive, not for allocating memory, case event is append to queque. Here problem is simple - QEvent::Leave is append to queque *before* MouseMove, this behavior can be easy preproduce at slower CPU's like mine. To make redirect on evey mousemove is not only stupid, it's more expencive than any other event.
> 
> Anthony Fieroni wrote:
>     Even more, on lower CPU event queque may increase it size case busy processor, this can cause slowdowns, flickers, example: widgets in system tray when has expand view by click on item, task window *must not* seen in taskmanager, but some time on lower CPU, when it be busy, postEvent is appended *after* event that window must be ignore for taskmanager, this cause visual flicker in taskmanager. http://tinypic.com/player.php?v=6ft8gn%3E&s=9 You can see blue flicker in taskmanager, cause postEvent is expensive when CPU is busy, this cannot see on better CPU.
> 
> David Edmundson wrote:
>     This breaks highlighting the correct item when the mouse is at the bottom of the screen and you slide along next to (but not on) the task manager.
> 
> Anthony Fieroni wrote:
>     I can add exclusive check for bottom edge. But for me it's better break this except everything else :)

That was one example, clearly it applies to every edge the panel might be on. And everyone things the bug that annoys them is worse than the bug that affects others. :P

What's frustrating is I think we're quite close to solving things properly, you've clearly identified where the real problem is. We should be able to do this without any regressions. 

The whole problem with the current code in PanelView is the containment is handling it's own mouseEnter, mouseLeave, but the panelview is proxying in some mouse events, and then those two get out of sync.
It's not about the speed of the postEvent, it's always going to happen in that order until someone fixes that underlying problem. Disabling mouseMoves doesn't fix that as we still effectively have the same problem with mouse presses and drags, just the symptoms might not be as visible.


- David


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126175/#review88931
-----------------------------------------------------------


On Nov. 28, 2015, 3:30 a.m., Anthony Fieroni wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/126175/
> -----------------------------------------------------------
> 
> (Updated Nov. 28, 2015, 3:30 a.m.)
> 
> 
> Review request for Plasma, David Edmundson and Marco Martin.
> 
> 
> Bugs: 354651
>     https://bugs.kde.org/show_bug.cgi?id=354651
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> You can see videos in bug repot
> 
> 
> Diffs
> -----
> 
>   shell/panelview.cpp 3407501 
> 
> Diff: https://git.reviewboard.kde.org/r/126175/diff/
> 
> 
> Testing
> -------
> 
> I test patch and all works as expected.
> http://doc.qt.io/qt-5/qevent.html
> QEvent::Leave	11	Mouse leaves widget's boundaries.
> 
> 
> Thanks,
> 
> Anthony Fieroni
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20151130/9ef5b1bb/attachment.html>


More information about the Plasma-devel mailing list