Merge lp:~3v1n0/unity/keep-texture-pixmap-friends-6.0 into lp:unity/6.0
Status: | Merged |
---|---|
Approved by: | Neil J. Patel |
Approved revision: | no longer in the source branch. |
Merged at revision: | 2764 |
Proposed branch: | lp:~3v1n0/unity/keep-texture-pixmap-friends-6.0 |
Merge into: | lp:unity/6.0 |
Diff against target: |
253 lines (+81/-55) 2 files modified
plugins/unityshell/src/unityshell.cpp (+77/-53) plugins/unityshell/src/unityshell.h (+4/-2) |
To merge this branch: | bzr merge lp:~3v1n0/unity/keep-texture-pixmap-friends-6.0 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Neil J. Patel (community) | Approve | ||
Review via email: mp+128018@code.launchpad.net |
Commit message
UnityWindow: add PixmapTexture struct: never separate a binded texture to its pixmap
Or it will lead to crashes. Now we cache both the GLTexture and the binded XPixmap, so
that we delete both together and there won't be crashes.
Texutures binded to Pixmaps should not be alive when the binded pixmap has been
destroyed. So, now we have a new PixmapTexture struct that keeps both the data
structures alive.
We now use a smart pointer of PixmapTexture to cache both the temporary decorations,
inside a CairoContext, and the ones at class level.
Description of the change
Texutures binded to Pixmaps should not be alive when the binded pixmap has been destroyed. So, now we have a new PixmapTexture struct that keeps both the data structures alive.
We now use a smart pointer of PixmapTexture to cache both the temporary decorations, inside a CairoContext, and the ones at class level.
This is safer and cleaner than the previously added workaround.