Comment 6 for bug 1004371

Revision history for this message
hansvschoot (hansvschoot) wrote :

so i had some time on my hands and did a bit more testing.
i took a clean ubuntu 12.04 install, ripped out the default compiz (0.9.7.8?) and replaced it with the compiz from onceiric (version 0.9.6).
this results in ubuntu 12.04 with only unity 2D available, in which compiz can be enabled and set up for testing. running compiz 0.9.6 under ubuntu 12.04 solves the problem in the smart window placement routine, but of course breaks a lot of other stuff.

for other people who want to mess around, break their system and test some stuff:
log out, log back in using unity 2D (or classic gnome, or any other manager that does not depend on unity)
in a terminal, remove compiz (and unity): sudo apt-get purge compiz*

I downloaded the .deb files from https://launchpad.net/ubuntu/oneiric/amd64/ (as my version was 64bit)
download the following packages, and install them using sudo dpkg -i package-name-here . the order is important, as they depend on one another
libdecoration0
compiz-core
compiz-plugins-default
compiz-plugins
libcompizconfig0
python-central
python-compizconfig
compizconfig-backend
compizconfig-settings-manager
compiz-gnome
(if they give an error, check the dependencies!)

after this you can test compiz 0.9.6 and ccsm under ubuntu 12.04, by running:
compiz --replace

My guess where things go wrong:
in the source of the compiz package (0.9.7.8 vs 0.9.6) the only real difference in the smart placement routine i can find is at line 83 of smart.ccp (plugins/place/src/smart/src/), where the old version (place.cpp, line 968) adds up 4 variables and the new version adds up only 3.

i'll keep digging, but it might take a lot of time, as i'm not familiar with the structure of the rest of the compiz code.