[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