[GnomeMeeting-devel-list] About the implementation of the net.gnomemeeting.accounts interface of the dbus component



Hi,

just to say that the implementation of the dbus component is almost
complete, except for that interface.

And even for that interface, only two things are lacking :
1. the signals are not emitted as should be when something changes. This
is something I still have to do ;
2. the state isn't accurately obtained when it has been changed. This is
a bug, and I need to fix it before taking care of point 1.

Let me describe the problem more thoroughly : the state of registered
accounts is visible in three places : in the number of registered
accounts in the main window, in the accounts window and in the remote.
Those are not updated correctly.

If I register/unregister from the remote, gnomemeeting's main window
tells me I registered/unregistered, and it is reflected in the main
window. The accounts window and the remote however don't show any change.

If I register/unregister from the accounts window, everything looks sane.

After some inquiry, the problem is in src/accounts.cpp, in the function account_toggled_cb, where one can read the following:
  account = gm_aw_get_selected_account (accounts_window);
  gnomemeeting_account_toggle_active (account);

  gdk_threads_leave ();
  ep->Register (account);
  gdk_threads_enter ();

  gm_account_delete (account);

Which means that a ui function does too much things, as if it were the only code path through which accounts can be modified. Of course this is very wrong when the dbus component comes into the picture ;-)

I don't exactly know how to tackle it, so I prefer asking on the ml first to discuss -- especially since threading is involved, as it is an area I really don't feel comfortable with.

Snark

PS: notice that since the signals aren't implemented, it is necessary to
click the update button in the remote to see how things stand.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]