pidgin/gtkconv.c

changeset 15486
06bb8277e42c
parent 15435
4b933b06d75e
child 15500
86b86eab98a4
equal deleted inserted replaced
15485:07050dfe816e 15486:06bb8277e42c
710 710
711 gtk_widget_grab_focus(GAIM_GTK_CONVERSATION(conv)->entry); 711 gtk_widget_grab_focus(GAIM_GTK_CONVERSATION(conv)->entry);
712 } 712 }
713 713
714 static void 714 static void
715 unblock_cb(GtkWidget *widget, GaimGtkConversation *gtkconv)
716 {
717 GaimConversation *conv = gtkconv->active_conv;
718 GaimAccount *account;
719
720 account = gaim_conversation_get_account(conv);
721
722 if (account != NULL && gaim_account_is_connected(account))
723 gaim_gtk_request_add_permit(account, gaim_conversation_get_name(conv));
724
725 gtk_widget_grab_focus(GAIM_GTK_CONVERSATION(conv)->entry);
726 }
727
728 static void
715 do_invite(GtkWidget *w, int resp, InviteBuddyInfo *info) 729 do_invite(GtkWidget *w, int resp, InviteBuddyInfo *info)
716 { 730 {
717 const char *buddy, *message; 731 const char *buddy, *message;
718 GaimGtkConversation *gtkconv; 732 GaimGtkConversation *gtkconv;
719 733
1295 1309
1296 block_cb(NULL, GAIM_GTK_CONVERSATION(conv)); 1310 block_cb(NULL, GAIM_GTK_CONVERSATION(conv));
1297 } 1311 }
1298 1312
1299 static void 1313 static void
1314 menu_unblock_cb(gpointer data, guint action, GtkWidget *widget)
1315 {
1316 GaimGtkWindow *win = data;
1317 GaimConversation *conv;
1318
1319 conv = gaim_gtk_conv_window_get_active_conversation(win);
1320
1321 unblock_cb(NULL, GAIM_GTK_CONVERSATION(conv));
1322 }
1323
1324 static void
1300 menu_add_remove_cb(gpointer data, guint action, GtkWidget *widget) 1325 menu_add_remove_cb(gpointer data, guint action, GtkWidget *widget)
1301 { 1326 {
1302 GaimGtkWindow *win = data; 1327 GaimGtkWindow *win = data;
1303 GaimConversation *conv; 1328 GaimConversation *conv;
1304 1329
2733 2758
2734 { N_("/Conversation/Al_ias..."), NULL, menu_alias_cb, 0, 2759 { N_("/Conversation/Al_ias..."), NULL, menu_alias_cb, 0,
2735 "<StockItem>", GAIM_STOCK_EDIT }, 2760 "<StockItem>", GAIM_STOCK_EDIT },
2736 { N_("/Conversation/_Block..."), NULL, menu_block_cb, 0, 2761 { N_("/Conversation/_Block..."), NULL, menu_block_cb, 0,
2737 "<StockItem>", GAIM_STOCK_BLOCK }, 2762 "<StockItem>", GAIM_STOCK_BLOCK },
2763 { N_("/Conversation/_Unblock..."), NULL, menu_unblock_cb, 0,
2764 "<StockItem>", GAIM_STOCK_UNBLOCK },
2738 { N_("/Conversation/_Add..."), NULL, menu_add_remove_cb, 0, 2765 { N_("/Conversation/_Add..."), NULL, menu_add_remove_cb, 0,
2739 "<StockItem>", GTK_STOCK_ADD }, 2766 "<StockItem>", GTK_STOCK_ADD },
2740 { N_("/Conversation/_Remove..."), NULL, menu_add_remove_cb, 0, 2767 { N_("/Conversation/_Remove..."), NULL, menu_add_remove_cb, 0,
2741 "<StockItem>", GTK_STOCK_REMOVE }, 2768 "<StockItem>", GTK_STOCK_REMOVE },
2742 2769
2949 2976
2950 win->menu.block = 2977 win->menu.block =
2951 gtk_item_factory_get_widget(win->menu.item_factory, 2978 gtk_item_factory_get_widget(win->menu.item_factory,
2952 N_("/Conversation/Block...")); 2979 N_("/Conversation/Block..."));
2953 2980
2981 win->menu.unblock =
2982 gtk_item_factory_get_widget(win->menu.item_factory,
2983 N_("/Conversation/Unblock..."));
2984
2954 win->menu.add = 2985 win->menu.add =
2955 gtk_item_factory_get_widget(win->menu.item_factory, 2986 gtk_item_factory_get_widget(win->menu.item_factory,
2956 N_("/Conversation/Add...")); 2987 N_("/Conversation/Add..."));
2957 2988
2958 win->menu.remove = 2989 win->menu.remove =
5625 gtk_widget_show(win->menu.send_file); 5656 gtk_widget_show(win->menu.send_file);
5626 gtk_widget_show(win->menu.add_pounce); 5657 gtk_widget_show(win->menu.add_pounce);
5627 gtk_widget_show(win->menu.get_info); 5658 gtk_widget_show(win->menu.get_info);
5628 gtk_widget_hide(win->menu.invite); 5659 gtk_widget_hide(win->menu.invite);
5629 gtk_widget_show(win->menu.alias); 5660 gtk_widget_show(win->menu.alias);
5630 gtk_widget_show(win->menu.block); 5661 if (gaim_privacy_check(account, gaim_conversation_get_name(conv))) {
5662 gtk_widget_hide(win->menu.unblock);
5663 gtk_widget_show(win->menu.block);
5664 } else {
5665 gtk_widget_hide(win->menu.block);
5666 gtk_widget_show(win->menu.unblock);
5667 }
5631 5668
5632 if ((account == NULL) || gaim_find_buddy(account, gaim_conversation_get_name(conv)) == NULL) { 5669 if ((account == NULL) || gaim_find_buddy(account, gaim_conversation_get_name(conv)) == NULL) {
5633 gtk_widget_show(win->menu.add); 5670 gtk_widget_show(win->menu.add);
5634 gtk_widget_hide(win->menu.remove); 5671 gtk_widget_hide(win->menu.remove);
5635 } else { 5672 } else {
6572 { 6609 {
6573 GaimGtkConversation *gtkconv; 6610 GaimGtkConversation *gtkconv;
6574 GaimConversation *conv; 6611 GaimConversation *conv;
6575 6612
6576 gtkconv = get_gtkconv_with_contact(gaim_buddy_get_contact(buddy)); 6613 gtkconv = get_gtkconv_with_contact(gaim_buddy_get_contact(buddy));
6577 if (gtkconv) 6614 if (gtkconv) {
6578 {
6579 conv = gtkconv->active_conv; 6615 conv = gtkconv->active_conv;
6580 gaim_gtkconv_update_fields(conv, GAIM_GTKCONV_TAB_ICON); 6616 gaim_gtkconv_update_fields(conv, GAIM_GTKCONV_TAB_ICON | GAIM_GTKCONV_MENU);
6581 } 6617 }
6582 } 6618 }
6583 6619
6584 static void 6620 static void
6585 update_buddy_idle_changed(GaimBuddy *buddy, gboolean old, gboolean newidle) 6621 update_buddy_idle_changed(GaimBuddy *buddy, gboolean old, gboolean newidle)

mercurial