Mercurial > pidgin
diff src/away.c @ 18:99d91a6c2fbf
[gaim-migrate @ 27]
Yet another patch by Eric. Someone needs to stop this boy :)
committer: Tailor Script <tailor@pidgin.im>
| author | Rob Flynn <gaim@robflynn.com> |
|---|---|
| date | Thu, 23 Mar 2000 18:40:39 +0000 |
| parents | 2846a03bda67 |
| children | e23783a60a7f |
line wrap: on
line diff
--- a/src/away.c Thu Mar 23 12:44:52 2000 +0000 +++ b/src/away.c Thu Mar 23 18:40:39 2000 +0000 @@ -37,25 +37,18 @@ GtkWidget *awaymenu; struct away_message *awaymessage = NULL; -#ifndef USE_APPLET static void destroy_im_away() { if (imaway) gtk_widget_destroy(imaway); imaway=NULL; } -#endif /* USE_APPLET */ void do_im_back(GtkWidget *w, GtkWidget *x) { #ifdef USE_APPLET + if(!blist) applet_widget_unregister_callback(APPLET_WIDGET(applet),"buddy"); applet_widget_unregister_callback(APPLET_WIDGET(applet),"away"); - if(!blist) applet_widget_unregister_callback(APPLET_WIDGET(applet),"buddy"); - applet_widget_register_callback(APPLET_WIDGET(applet), - "away", - _("Away Message"), - show_away_mess, - NULL); if(!blist) { applet_widget_register_callback(APPLET_WIDGET(applet), "buddy", @@ -63,6 +56,7 @@ (AppletCallbackFunc)make_buddy, NULL); } + insert_applet_away(); #endif /* USE_APPLET */ if (imaway) { gtk_widget_destroy(imaway); @@ -75,21 +69,6 @@ void do_away_message(GtkWidget *w, struct away_message *a) { -#ifdef USE_APPLET - applet_widget_unregister_callback(APPLET_WIDGET(applet),"away"); - if(!blist) applet_widget_unregister_callback(APPLET_WIDGET(applet),"buddy"); - applet_widget_register_callback(APPLET_WIDGET(applet), - "away", - _("Back"), - (AppletCallbackFunc) do_im_back, - NULL); - if(!blist) applet_widget_register_callback(APPLET_WIDGET(applet), - "buddy", - _("Buddy List"), - (AppletCallbackFunc)make_buddy, - NULL); -#else - GtkWidget *back; GtkWidget *awaytext; GtkWidget *vscrollbar; @@ -101,6 +80,21 @@ GList *cnv = conversations; struct conversation *c; +#ifdef USE_APPLET + if(!blist) applet_widget_unregister_callback(APPLET_WIDGET(applet),"buddy"); + remove_applet_away(); + if(!blist) applet_widget_register_callback(APPLET_WIDGET(applet), + "buddy", + _("Buddy List"), + (AppletCallbackFunc)make_buddy, + NULL); + applet_widget_register_callback(APPLET_WIDGET(applet), + "away", + _("Back"), + (AppletCallbackFunc) do_im_back, + NULL); +#endif + if (!imaway) { imaway = gtk_window_new(GTK_WINDOW_DIALOG); gtk_widget_realize(imaway); @@ -165,11 +159,18 @@ serv_set_away(buf2); // g_free(buf2); gtk_widget_show(imaway); -#endif /* USE_APPLET */ } void rem_away_mess(GtkWidget *w, struct away_message *a) { +#ifdef USE_APPLET + char *awayname; + awayname = malloc(sizeof *awayname * (6 + strlen(a->name))); + awayname[0] = '\0'; + strcat(awayname, "away/"); + strcat(awayname, a->name); + applet_widget_unregister_callback(APPLET_WIDGET(applet), awayname); +#endif away_messages = g_list_remove(away_messages, a); g_free(a); do_away_menu(); @@ -188,6 +189,17 @@ GList *awy = away_messages; struct away_message *a; +#ifdef USE_APPLET + remove_applet_away(); + if (imaway) + applet_widget_register_callback(APPLET_WIDGET(applet), + "away", + _("Back"), + (AppletCallbackFunc)do_im_back, + NULL); + else + insert_applet_away(); +#endif if (pd != NULL) { gtk_list_clear_items(GTK_LIST(pd->away_list), 0, -1);
