Review Request 119406: Always take the painter based path for composeOverBorder
David Edmundson
david at davidedmundson.co.uk
Wed Jul 23 11:20:09 UTC 2014
> On July 22, 2014, 10:50 p.m., Eike Hein wrote:
> > Two issues:
> >
> > - Existing Dialog instances don't get the corner mask applied correctly when switching from transparent to opague:
> >
> > ![Shot](http://wstaw.org/m/2014/07/23/cornermask.png)
> >
> > - Compiler warning:
> >
> > framesvgitem.cpp:119:10: warning: unused parameter ‘composeOverBorder’ [-Wunused-parameter]
> > void updateTexture(const QSize &size, const QString &elementId, bool composeOverBorder)
>
> Marco Martin wrote:
> happens only from this patch?
>
> David Edmundson wrote:
> Seems to be reproducible in v5.0 in the following situation:
>
> start a scene i.e tests/dialog.qml
> enable compositing
> resize to something not in the cache
> disable compositing
>
> Marco Martin wrote:
> ok, so either kwindowsystem not notifying or a wrong response to the signal
>
> David Edmundson wrote:
> The cause seems to be alphaMask() coming out wrong.
>
> I added a frameSvg->alphaMask().save("/tmp/mask.png"); and the mask we're using (via .mask()) to send to KWindowSystem is broken and mostly translucent instead of being primarily black.
>
> Marco Martin wrote:
> ah, i see the theme doesn't have an element for the mask, for some version so it's using the normal frame as the mask as well, that's a bit less predictable.
>
> adding it in the theme, and let's see if it changes anything
>
> Marco Martin wrote:
> try it now, i added a dedicated black mask prefix to the dialog elements
well that won't fix the root issue, just breeze.
It seems there's a race and it builds the alphamask from the transparent components rather than the new opaque ones.
I tried making sure dialog updates after framesvg has processed the textureChanged signal, but that's not quite enough.
- David
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119406/#review62911
-----------------------------------------------------------
On July 22, 2014, 2:24 p.m., David Edmundson wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119406/
> -----------------------------------------------------------
>
> (Updated July 22, 2014, 2:24 p.m.)
>
>
> Review request for KDE Frameworks and Plasma.
>
>
> Repository: plasma-framework
>
>
> Description
> -------
>
> Always take the painter based path for composeOverBorder
>
> We previously only supported compose-over-border when the centre was not
> set to tile.
>
> A recent change to the breeze theme put everything into tiling, even if
> some things used compose-over-border, which broke opaque widgets.
>
> Given that creating an opacityMask loads most of the image anyway, we
> can make use of the FrameSVG painter path and avoid any additional code
> complexity here.
>
>
> Diffs
> -----
>
> src/declarativeimports/core/framesvgitem.cpp a5fe315
>
> Diff: https://git.reviewboard.kde.org/r/119406/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> David Edmundson
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140723/46cf88ea/attachment.html>
More information about the Kde-frameworks-devel
mailing list