Review Request 127374: Fix taskbar flicking when opening Plasma popups

David Rosca nowrep at gmail.com
Tue Mar 15 15:15:00 UTC 2016


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



Are you sure this fixes it? I've tested it now with Qt 5.5 and it just completely broke the skip taskbar feature (= plasma popups are shown ALWAYS in taskbar). I was experimenting with various workarounds too, but found none (other than always using Popup as window type for Plasma::Dialog instead of normal window).

I think it is because the _NET_WM_STATE hints are reset by Qt before Expose event, not in Show event. But I'm not sure about this one (didn't look in the code). My patch however fixes it correctly :)

- David Rosca


On March 15, 2016, 2:36 p.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127374/
> -----------------------------------------------------------
> 
> (Updated March 15, 2016, 2:36 p.m.)
> 
> 
> Review request for KDE Frameworks and Plasma.
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> When we show a Qt window it resets all wm_states, including the
> SKIP_TASKBAR state that Qt doesn't support see
> QXcbWindow::setNetWmStates
> 
> In order to set the flag we need to do it after Qt has mapped the
> window. (after a showEvent)
> 
> Dialog previously did this using ExposeEvent which we know will happen after show.
> 
> However:
> 1) This is a rather random fix
> 2) It will be called after TaskManager has been notified of a new window
> 
> By merging into the same event we can make sure the flag is set before
> the task manager processes the new window. This means task manager will always skip plasma popups.
> 
> A better fix will obviously be patching Qt to not reset flags it doesn't know about 
> and then we can set this flag in the ctor. I shall try and do that for Qt 5.7.
> 
> BUG: 332024
> REVIEW:
> 
> 
> Diffs
> -----
> 
>   src/plasmaquick/dialog.cpp 56f39c0740a1e32a9588e7461dcb45aab3fe9e85 
> 
> Diff: https://git.reviewboard.kde.org/r/127374/diff/
> 
> 
> Testing
> -------
> 
> Added debug in libtaskmanager, the window flags are always correct for the new window.
> 
> 
> Thanks,
> 
> David Edmundson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160315/73413a50/attachment.html>


More information about the Plasma-devel mailing list