Review Request 106110: Make autohide panel do not intercept events in fullscreen app

Alexey Shmalko rasen.dev at gmail.com
Thu Mar 21 18:42:37 UTC 2013



> On March 20, 2013, 2 p.m., Aaron J. Seigo wrote:
> > have you tested the following two use cases:
> > 
> > * panel hides, a window becomes full screen at that point .. does the panel still unhide now?
> > * window becomes full screen, panel hides (and with the patch no unhide trigger is created), window goes out of full screen
> > 
> > in both cases does the panel unhide or not as expected?
> > 
> > the reason i ask is that the unhide trigger is only created when a resize or move event happens, deskop reserve struts are changed, the theme changes or updatePanelGeometry is called due to screen geometry change or the panel position on screen changes. .. and i'd be surprised if those get called when a window goes into or exits full screen. So this fix would create a new bug in which the hint hide doesn't show until the panel is unhidden once after a fullscreen window shows.
> > 
> > quick tip: to ensure that mouse movements don't interfere and to simulate "things happening all at once without user interaction" usually i trigger full screen with sth like: `sleep 3; qdbus org.kde.konsole-`pidof konsole`  /konsole/MainWindow_1/actions/fullscreen` which gives me 3 seconds to hide the panel before the action occurs, but without any further user input.
> > 
> > I think what probably needs to happen here is a bit more straightforward -> whenever the hide area is triggered (e.g. in the "fancy" case, the mouse approaches the trigger area) it should check to see if there is a fullscreen window on the same screen and if so .. don't do anything.
> > 
> > That said, the real solution here will be to move to the single screen edge implementation where the fancy show uses the kwin effect that Martin has written (and which looks really nice, btw, Martin :)
> 
> Alexey Shmalko wrote:
>     * panel hides, a window becomes full screen at that point .. does the panel still unhide now?
>     No, it doesn't.
>     
>     * window becomes full screen, panel hides (and with the patch no unhide trigger is created), window goes out of full screen
>     Panel unhides as it do before of these operations.
>     
>     So, the panel works as expected.
>     
>     >> I think what probably needs to happen here is a bit more straightforward -> whenever the hide area is triggered (e.g. in the "fancy" case, the mouse approaches the trigger area) it should check to see if there is a fullscreen window on the same screen and if so .. don't do anything.
>     
>     There still one bug. 1px-width area still intercepted by panel. If do things this way, this bug will disapear.
>     I'll do this today or tomorrow.

Does trigger of unhide event is PanelView::hintOrUnhide()? If so, there is already such code:

    KWindowInfo activeWindow = KWindowSystem::windowInfo(KWindowSystem::activeWindow(), NET::WMState);
    if (activeWindow.state() & NET::FullScreen) {
        return false;
    }

So, this approach isn't working. Panel still intercept events.


- Alexey


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/106110/#review29551
-----------------------------------------------------------


On March 18, 2013, 6:37 p.m., Alexey Shmalko wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/106110/
> -----------------------------------------------------------
> 
> (Updated March 18, 2013, 6:37 p.m.)
> 
> 
> Review request for kwin and Plasma.
> 
> 
> Description
> -------
> 
> Make autohide panel do not intercept events in fullscreen app.
> 
> I changed PanelView::createUnhideTrigger() to check whether current active application is in fullscreen mode. So in fullscreen applications panel will be always hidden.
> 
> 
> This addresses bug 217560.
>     http://bugs.kde.org/show_bug.cgi?id=217560
> 
> 
> Diffs
> -----
> 
>   plasma/desktop/shell/panelview.cpp 7713740 
> 
> Diff: http://git.reviewboard.kde.org/r/106110/diff/
> 
> 
> Testing
> -------
> 
> Tested with patched gentoo ebuild. Works fine.
> 
> 
> Thanks,
> 
> Alexey Shmalko
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20130321/843e93aa/attachment-0001.html>


More information about the Plasma-devel mailing list