Comment 11 for bug 1296422

Revision history for this message
Matthieu Baerts (matttbe) wrote :

@fabounet: sorry, I think I found what was wrong yesterday but I had problem with my WiFi connexion...

At startup, the Container Manager is registered and the "init" function is launched even if there is no dock (e.g. when there is a GTK dialogue at startup to choose if the user wants to use the OpenGL backend or not). After 4 seconds, "_check_composite_delayed()" is called and if the screen doesn't have any composite manager, "_enable_fake_transparency()" is used and this line will crash the dock:

    s_iPrevVisibility = g_pMainDock->iVisibility;

I guess that the init() function should be used after having creating all docks, no need to be connected to the "composited-changed" signal, etc. before that. As an easy fix, if 'g_pMainDock' is NULL when starting "_check_composite_delayed()", this function is delayed again => https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/revision/1732#src/gldit/cairo-dock-container.c
Or maybe we can add a "reload()" function which will be used after having displayed the GTK dialogue?

What do you think about that? :-)