[Konsole-devel] [Bug 81845] Sessions are not sharing background's image memory

Nigel Stewart nigels at nigels.com
Wed Sep 5 04:55:44 UTC 2007


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=81845         




------- Additional Comments From nigels nigels com  2007-09-05 06:55 -------
Roman, I'm not so sure this problem can be blamed on Qt.  And, I think konsole can be improved in this regard, although it might involve bypassing the use of KRootPixmap.

In konsole.h, there is a container of pixmaps called rootxpms.  Depending on the relevant scheme, a KRootPixmap is attached to each terminal widget to implement the transparency effect.  Internally KRootPixmap is copying the desktop wallpaper image from the X11 server into a KSharedPixmap (inheriting KPixmap inheriting QPixmap).  Then, in KRootPixmap::updateBackground another QPixmap copy is made, with darkening or lightening applied - and passed to the TEWidget.

So, it seems that there is a copy on the server, and two copies per TEWidget.  If there are five terminals using the same scheme, it ought to be possible to reduce this from 10 copies to 2 copies by having one KRootPixmap per scheme, rather than one KRootPixmap per terminal.  However, KRootPixmap is designed to update a particular QWidget rather than a collection, so perhaps an efficient KRootPixmap needs to be forked into the konsole scope.

Please correct me if you find anything incorrect with this analysis.

Nigel



More information about the konsole-devel mailing list