[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