[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request: Support for transparent panel without composition
From:       "Aaron Seigo" <aseigo () kde ! org>
Date:       2009-03-31 0:32:31
Message-ID: 20090331003231.25091.95278 () localhost
[Download RAW message or body]


-----------------------------------------------------------
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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic