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


so .. on a purely technical level .. the invokeMethod is really ugly (though 
probably mildly less ugly than stuffing the API in libplasma), and will of 
course not work with other Containment::PanelContainment type Containments 
unless they duplicate the code. and there's really no way of not duplicating 
the code in each PanelContainment to guarantee perfect results.

for wallpapers that animate (e.g. the slideshow) this would cause full panel 
repaints during animation, over and over, with the rather more expensive 
SourceUnder compositing. this would likely destroy performance both for the 
animation and the rest of plasma on machines that already are struggling to 
provide service w/out compositing and/or OpenGL available to them.

grabWidget causes a full repaint, which would be even more expensive (so we're 
talking about a paint on the desktop causing a repaint in the panel and another 
repaint in the desktop); grabWindow would just grab the relevant bits but 
likely has its own problems?

there's also future proofing concerns there with multiple overlapping panels 
and per-desktop panels.

i hope this all helps to explain why it's simply not an option.


trunk/KDE/kdebase/workspace/plasma/shells/desktop/plasmaapp.cpp
<http://reviewboard.kde.org/r/472/#comment449>

    this assumes that panels will always be on all desktops. safe assumption 
today, but not guaranteed.
    
    probably fixable by comparing against panel->desktop() instead.
    
    at least in the non-compositing case you can't see more than one desktop at 
a time (e.g. desktop grids/cubes/spheres/etc).


- Aaron


On 2009-03-30 06:37:48, David Nolden wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/472/
> -----------------------------------------------------------
> 
> (Updated 2009-03-30 06:37:48)
> 
> 
> Review request for Plasma.
> 
> 
> Summary
> -------
> 
> Many people can not, or do not want to use composition. A semi-transparent 
> panel highly increases the appeal of a Desktop, and there currently is only 
> very few plasma themes available that have a nice-looking panel without 
> transparency enabled.
> 
> All other major linux Desktop-Environments support transparent panels without 
> composition(KDE 3.x, GNOME, and others), and since usually the only thing 
> that needs to be visible through the panel is the Desktop itself, using a 
> composition-less approach does not have much disadvantage here.
> 
> Here's I'm proposing a patch to achieve  this in a relatively clean way: The 
> panel is painted and updated as if it was a plasmoid on the Desktop itself, 
> grabbing the painted area plasma-internally directly from the  underlying 
> desktop-view. The corresponding area of the panel is updated whenever the 
> desktop is repainted, which means that animated plasmoids partially hidden 
> under the panel, animations like the desktop-fading, moving plasmoids 
> partially under the panel, etc. "just work".
> 
> Result: A nice looking panel for everyone, less work for theme designers. 
> Please don't leave those behind who don't want or can not use desktop 
> composition!
> 
> (Note: If you try this out, it doesn't work with all themes, since some 
> themes seem to have no alpha-information in the non-composition case).
> 
> 
> Diffs
> -----
> 
>   trunk/KDE/kdebase/workspace/plasma/containments/panel/panel.h 940781 
>   trunk/KDE/kdebase/workspace/plasma/containments/panel/panel.cpp 940781 
>   trunk/KDE/kdebase/workspace/plasma/shells/desktop/desktopview.h 940781 
>   trunk/KDE/kdebase/workspace/plasma/shells/desktop/desktopview.cpp 940781 
>   trunk/KDE/kdebase/workspace/plasma/shells/desktop/panelview.h 940781 
>   trunk/KDE/kdebase/workspace/plasma/shells/desktop/panelview.cpp 940781 
>   trunk/KDE/kdebase/workspace/plasma/shells/desktop/plasmaapp.h 940781 
>   trunk/KDE/kdebase/workspace/plasma/shells/desktop/plasmaapp.cpp 940781 
> 
> Diff: http://reviewboard.kde.org/r/472/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> David
> 
>

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to