Mercurial > pidgin
diff src/multi.c @ 3510:e23909729192
[gaim-migrate @ 3576]
A GNOME2 docklet. This follows the opendesktop.org specs used by GNOME2 and
(I think) KDE in Redhat's null (I don't think vanilla KDE supports it yet)
For GNOME--you will need to have the GNOME Panel Notification Area installed.
This replaces the applet--thanks Robert McQueen.
CVS: ----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: configure.ac configure.in plugins/Makefile.am src/aim.c
CVS: src/buddy.c src/core.h src/module.c src/multi.c src/perl.c
CVS: src/server.c src/ui.h
CVS: ----------------------------------------------------------------------
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sat, 14 Sep 2002 23:27:28 +0000 |
parents | cfbdfe334975 |
children | 6b0cb60162f4 |
line wrap: on
line diff
--- a/src/multi.c Sat Sep 14 19:37:29 2002 +0000 +++ b/src/multi.c Sat Sep 14 23:27:28 2002 +0000 @@ -101,7 +101,6 @@ GSList *h; struct group *m; struct buddy *n; - connections = g_slist_remove(connections, gc); while (g) { m = (struct group *)g->data; g = g_slist_remove(g, m); @@ -126,7 +125,7 @@ g = g_slist_remove(g, g->data); } g_free(gc); -/* fixme: docklet */ + if (!connections && mainwindow) gtk_widget_show(mainwindow); } @@ -1156,6 +1155,7 @@ redo_convo_menus(); gaim_setup(gc); + gc->user->connecting = FALSE; plugin_event(event_signon, gc, 0, 0, 0); system_log(log_signon, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); @@ -1437,15 +1437,23 @@ void signoff(struct gaim_connection *gc) { + /* UI stuff */ + convo_menu_remove(gc); + remove_icon_data(gc); + /* core stuff */ + /* remove this here so plugins get a sensible count of connections */ + connections = g_slist_remove(connections, gc); debug_printf("date: %s\n", full_date()); plugin_event(event_signoff, gc, 0, 0, 0); system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); + /* set this in case the plugin died before really connecting. + do it after calling the plugins so they can determine if + this user was ever on-line or not */ + gc->user->connecting = FALSE; + serv_close(gc); - /* UI stuff */ - convo_menu_remove(gc); - remove_icon_data(gc); - serv_close(gc); + /* more UI stuff */ redo_buddy_list(); build_edit_tree(); do_away_menu(); @@ -1453,22 +1461,12 @@ redo_convo_menus(); update_privacy_connections(); + /* in, out, shake it all about */ if (connections) return; destroy_all_dialogs(); destroy_buddy(); -/* fixme: docklet - set_user_state(offline); - applet_buddy_show = FALSE; - - if (applet) { - /* These don't have any purpose if the applet is gone :-P - applet_widget_unregister_callback(APPLET_WIDGET(applet), "signoff"); - applet_widget_register_callback(APPLET_WIDGET(applet), - "autologin", _("Auto-login"), (AppletCallbackFunc)auto_login, NULL); - remove_applet_away(); - } */ show_login(); }