Review Request: Support for transparent panel without composition

David Nolden zwabel+reviewboard at gmail.com
Mon Mar 30 15:37:48 CEST 2009


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

(Updated 2009-03-30 06:37:48.422264)


Review request for Plasma.


Changes
-------

Do not add any new public API within the plasma libs. Now it's purely within kdebase/workspace/plasma, with the actual logic encapsulated only in the desktop shell.


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 (updated)
-----

  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



More information about the Plasma-devel mailing list