fix problem with e_gadcon_provider_register() being called from e_modapi_init().
authorGustavo Sverzut Barbieri <barbieri@gmail.com>
Sun, 17 May 2009 23:43:02 +0000 (23:43 +0000)
committerGustavo Sverzut Barbieri <barbieri@gmail.com>
Sun, 17 May 2009 23:43:02 +0000 (23:43 +0000)
commit804f59e6e5309ba07acf4714d582f47c865a4f88
treed08aeab1f4348f3328386a0770edd163975e4802
parent85c73ac42f395bf251e74ec792c29e9196e92bb1
fix problem with e_gadcon_provider_register() being called from e_modapi_init().

if e_modapi_init() called e_gadcon_provider_register() the module
gc_init() would be called immediately, becore e_modapi_init() finished
and thus mod->data was unset (it's set by E when that function
returns).

most modules did not show this problem since they keep lots of globals
around and use them, but not mixer module. Mixer module did check for
global mixer_mod to be set and also mixer_mod->data, thus exposed this
problem, with "mixer is not able to show on desktop/gadget" but did in
shelves, since it would refuse to load immediately but would be loaded
later at e_shelf_config_new()->e_gadcon_populate().

Now gadcons are populated from an idler, avoiding all these problems
and probably will impact user's perceived load time since it will do
less work before getting to main loop and being able to process
events.

SVN revision: 40714
src/bin/e_gadcon.c