Review Request: fix kwin tabbox shadow

Martin Gräßlin kde at martin-graesslin.com
Mon Jan 7 10:46:23 UTC 2013



> On Jan. 6, 2013, 7:34 a.m., Martin Gräßlin wrote:
> > I don't like having a link dependency on plasmagenericshell. If that is supposed to be used, then it needs to go to the workspaces libs.
> > 
> > I also think that this approach just doesn't scale. We use Plasma styled dialogs for more things and I don't want to have to use this approach everywhere and not all of them are C++ based. Furthermore in case of KWin it's a little bit stupid to set an X11 property for the shadows on a KWin internal window.
> > 
> > I will look into the whole thing. I think especially the tabbox has some old code still around which might not be needed any more.
> 
> Xuetian Weng wrote:
>     yep, I totally agree what you said. But as I exam the code I couldn't think of any easier solution that can avoid rewrite this part of code.
>     One of the problem is, the background is defined in qml, so set shadow here isn't correct if someone don't use a plasma background. But maybe the background should be move out, but in that case it would break existing tabbox qml (fortunately there aren't much on kde-look.org).
>     
>     The right approach is to use Plasma::Dialog IMHO, but use it here is not very easy and it would still use same code (which is in kdelibs) to set X11 property for shadow.
>     
>     So kwin will directly use Plasma::Svg for tabbox shadow?.. I can't see a clear way for doing this right so I just take a easiest way for this. (And to call attention for right people on this, on purpose :P)
> 
> Thomas Lübking wrote:
>     KWin needs a (tmp proprietary) property to set the shadow from qml.
>     
>     Item {
>       shadowLeft = <someimage>
>     }
>     
>     Plasma (components) hopefully provides a qml way to access the pixmap(id) of a Plasma::Svg directly, otherwise one will have to create PlasmaCore.SvgItem (i hope they exist) and pass them over to the property (but i've atm. no idea how to make an image out of that)
> 
> Martin Gräßlin wrote:
>     given that KWin includes one layout for Plasma Active which does not set a background at all and which should not get a shadow, anything which would enforce the usage of Shadows is wrong.
>     
>     It needs to be done in a way as Thomas suggests. If that's not possible than we have to live with a regression.
> 
> Aaron J. Seigo wrote:
>     "I don't like having a link dependency on plasmagenericshell. If that is supposed to be used, then it needs to go to the workspaces libs"
>     
>     libplasmagenerichsell is in kde-workspace/libs/plasmagenericshell. it obviously has no dependency on any plasma application or shell since it's in kde-workspace/libs. what more do you want?
>     
>     "We use Plasma styled dialogs for more things and I don't want to have to use this approach everywhere and not all of them are C++ based."
>     
>     if instead of using plasma style dialogs, the code used Plasma::Dialog then it wouldn't be an issue. if there is some reason Plasma::Dialog can not be used, we can perhaps look at why and see if that can be fixed.

>> "I don't like having a link dependency on plasmagenericshell. If that is supposed to be used, then it needs to go to the workspaces libs"
> libplasmagenerichsell is in kde-workspace/libs/plasmagenericshell. it obviously has no dependency on any plasma application or shell since it's in kde-workspace/libs. what more do you want?
When I wrote that I didn't know that it is in libs, I assumed it's not, because the include used "" instead of <> also the name implies that it is about a generic plasma desktop shell. My guessing skills are not that good ;-)

>> "We use Plasma styled dialogs for more things and I don't want to have to use this approach everywhere and not all of them are C++ based."
> if instead of using plasma style dialogs, the code used Plasma::Dialog then it wouldn't be an issue. if there is some reason Plasma::Dialog can not be used, we can perhaps look at why and see if that can be fixed.
KWin is a very special beast, it cannot manage it's own Clients. If it somehow gets a dependency to KWindowSystem it even starts to break as events gets eaten. I don't know if that has been the issue here, but it is quite likely. I remember that for the Qml based TabBox it just didn't work with using the appropriate Plasma Component. It's nice that you want to fix it, but I rather doubt that you want to include fixes for the special needs of a window manager :-)

But definetaly using Plasma::Dialog would mean that it has to be Plasma styled. That is already a showstopper for TabBox given that the window strip may not be Plasma styled. Also for Qml based scripts it would turn the you *can* use Plasma style into a you *have* to use Plasma style. I must say that I don't want to have to depend on Plasma styling as that would be considered as a showstopper for any approaches of using KWin in Razor-Qt (they are very interested) and Unity (I have hope since Compiz is dead and Sam no longer employed at Canonical).


- Martin


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


On Jan. 6, 2013, 6:55 a.m., Xuetian Weng wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/108224/
> -----------------------------------------------------------
> 
> (Updated Jan. 6, 2013, 6:55 a.m.)
> 
> 
> Review request for kwin, Plasma, Aaron J. Seigo, and Martin Gräßlin.
> 
> 
> Description
> -------
> 
> use the same technique for krunner and some plasma to brought back tabbox shadow.
> 
> 
> Diffs
> -----
> 
>   kwin/CMakeLists.txt 62e9964 
>   kwin/kcmkwin/kwintabbox/CMakeLists.txt 72a6b72 
>   kwin/tabbox/declarative.h e36e67b 
>   kwin/tabbox/declarative.cpp 3bdcfac 
>   powerdevil/daemon/brightnessosdwidget.h ef08903 
>   powerdevil/daemon/brightnessosdwidget.cpp e4cf80a 
> 
> Diff: http://git.reviewboard.kde.org/r/108224/diff/
> 
> 
> Testing
> -------
> 
> compiles, no problem.
> 
> 
> Thanks,
> 
> Xuetian Weng
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20130107/6d4c4e6c/attachment.html>


More information about the Plasma-devel mailing list