comparison pidgin/gtkutils.c @ 32707:c7de9dc7c5b3

Avoid calling gtk_combo_box_set_active twice in some cases.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Thu, 29 Dec 2011 05:36:32 +0000
parents b8a6a07aa5b0
children c2df5063d430
comparison
equal deleted inserted replaced
32706:b8a6a07aa5b0 32707:c7de9dc7c5b3
677 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(optmenu), cr, "pixbuf", AOP_ICON_COLUMN); 677 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(optmenu), cr, "pixbuf", AOP_ICON_COLUMN);
678 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(optmenu), cr = gtk_cell_renderer_text_new(), TRUE); 678 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(optmenu), cr = gtk_cell_renderer_text_new(), TRUE);
679 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(optmenu), cr, "text", AOP_NAME_COLUMN); 679 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(optmenu), cr, "text", AOP_NAME_COLUMN);
680 680
681 aop_option_menu_replace_menu(optmenu, aop_menu); 681 aop_option_menu_replace_menu(optmenu, aop_menu);
682 if (aop_menu->default_item == -1)
683 gtk_combo_box_set_active(GTK_COMBO_BOX(optmenu), 0);
684 g_object_set_data(G_OBJECT(optmenu), "user_data", user_data); 682 g_object_set_data(G_OBJECT(optmenu), "user_data", user_data);
685 683
686 g_signal_connect(G_OBJECT(optmenu), "changed", G_CALLBACK(aop_menu_cb), cb); 684 g_signal_connect(G_OBJECT(optmenu), "changed", G_CALLBACK(aop_menu_cb), cb);
687 685
688 return optmenu; 686 return optmenu;
718 int i; 716 int i;
719 717
720 ls = gtk_list_store_new(AOP_COLUMN_COUNT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); 718 ls = gtk_list_store_new(AOP_COLUMN_COUNT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
721 719
722 aop_menu = g_malloc0(sizeof(AopMenu)); 720 aop_menu = g_malloc0(sizeof(AopMenu));
723 aop_menu->default_item = -1; 721 aop_menu->default_item = 0;
724 aop_menu->model = GTK_TREE_MODEL(ls); 722 aop_menu->model = GTK_TREE_MODEL(ls);
725 723
726 for (p = purple_plugins_get_protocols(), i = 0; 724 for (p = purple_plugins_get_protocols(), i = 0;
727 p != NULL; 725 p != NULL;
728 p = p->next, i++) { 726 p = p->next, i++) {
742 g_object_unref(pixbuf); 740 g_object_unref(pixbuf);
743 741
744 if (default_proto_id != NULL && !strcmp(plugin->info->id, default_proto_id)) 742 if (default_proto_id != NULL && !strcmp(plugin->info->id, default_proto_id))
745 aop_menu->default_item = i; 743 aop_menu->default_item = i;
746 } 744 }
745
747 return aop_menu; 746 return aop_menu;
748 } 747 }
749 748
750 GtkWidget * 749 GtkWidget *
751 pidgin_protocol_option_menu_new(const char *id, GCallback cb, 750 pidgin_protocol_option_menu_new(const char *id, GCallback cb,
786 list = purple_connections_get_all(); 785 list = purple_connections_get_all();
787 786
788 ls = gtk_list_store_new(AOP_COLUMN_COUNT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); 787 ls = gtk_list_store_new(AOP_COLUMN_COUNT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
789 788
790 aop_menu = g_malloc0(sizeof(AopMenu)); 789 aop_menu = g_malloc0(sizeof(AopMenu));
791 aop_menu->default_item = -1; 790 aop_menu->default_item = 0;
792 aop_menu->model = GTK_TREE_MODEL(ls); 791 aop_menu->model = GTK_TREE_MODEL(ls);
793 792
794 for (p = list, i = 0; p != NULL; p = p->next, i++) { 793 for (p = list, i = 0; p != NULL; p = p->next, i++) {
795 if (show_all) 794 if (show_all)
796 account = (PurpleAccount *)p->data; 795 account = (PurpleAccount *)p->data;
835 g_object_unref(pixbuf); 834 g_object_unref(pixbuf);
836 835
837 if (default_account && account == default_account) 836 if (default_account && account == default_account)
838 aop_menu->default_item = i; 837 aop_menu->default_item = i;
839 } 838 }
839
840 return aop_menu; 840 return aop_menu;
841 } 841 }
842 842
843 static void 843 static void
844 regenerate_account_menu(GtkWidget *optmenu) 844 regenerate_account_menu(GtkWidget *optmenu)