Mercurial > pidgin
comparison pidgin/gtkutils.c @ 32696:763d65f3f758
explicit merge of '6ab9f5ff810acde3c06a2add7b8df2bd75cce6e3'
and '7a0bb807afc9c1c3f2aaa7143fc5d1e3dc7c6ee8'
to branch 'im.pidgin.cpw.qulogic.gtk3'
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 23 Dec 2011 06:58:52 +0000 |
parents | 420aef349806 3538e783b98c |
children | b961222cf067 |
comparison
equal
deleted
inserted
replaced
32418:466efc330d3d | 32696:763d65f3f758 |
---|---|
68 #include "gtkthemes.h" | 68 #include "gtkthemes.h" |
69 #include "gtkutils.h" | 69 #include "gtkutils.h" |
70 #include "gtkwebview.h" | 70 #include "gtkwebview.h" |
71 #include "pidgin/minidialog.h" | 71 #include "pidgin/minidialog.h" |
72 | 72 |
73 #if !GTK_CHECK_VERSION(2,18,0) | |
74 #define gtk_widget_get_visible(x) GTK_WIDGET_VISIBLE(x) | |
75 #define gtk_widget_is_sensitive(x) GTK_WIDGET_IS_SENSITIVE(x) | |
76 #endif | |
77 | |
73 typedef struct { | 78 typedef struct { |
74 GtkWidget *menu; | 79 GtkTreeModel *model; |
75 gint default_item; | 80 gint default_item; |
76 } AopMenu; | 81 } AopMenu; |
77 | 82 |
78 static guint accels_save_timer = 0; | 83 static guint accels_save_timer = 0; |
79 static GSList *registered_url_handlers = NULL; | 84 static GSList *registered_url_handlers = NULL; |
354 gboolean sensitivity; | 359 gboolean sensitivity; |
355 | 360 |
356 if (to_toggle == NULL) | 361 if (to_toggle == NULL) |
357 return; | 362 return; |
358 | 363 |
359 sensitivity = GTK_WIDGET_IS_SENSITIVE(to_toggle); | 364 sensitivity = gtk_widget_is_sensitive(to_toggle); |
360 | 365 |
361 gtk_widget_set_sensitive(to_toggle, !sensitivity); | 366 gtk_widget_set_sensitive(to_toggle, !sensitivity); |
362 } | 367 } |
363 | 368 |
364 void | 369 void |
371 for (i=0; i < data->len; i++) { | 376 for (i=0; i < data->len; i++) { |
372 element = g_ptr_array_index(data,i); | 377 element = g_ptr_array_index(data,i); |
373 if (element == NULL) | 378 if (element == NULL) |
374 continue; | 379 continue; |
375 | 380 |
376 sensitivity = GTK_WIDGET_IS_SENSITIVE(element); | 381 sensitivity = gtk_widget_is_sensitive(element); |
377 | 382 |
378 gtk_widget_set_sensitive(element, !sensitivity); | 383 gtk_widget_set_sensitive(element, !sensitivity); |
379 } | 384 } |
380 } | 385 } |
381 | 386 |
383 pidgin_toggle_showhide(GtkWidget *widget, GtkWidget *to_toggle) | 388 pidgin_toggle_showhide(GtkWidget *widget, GtkWidget *to_toggle) |
384 { | 389 { |
385 if (to_toggle == NULL) | 390 if (to_toggle == NULL) |
386 return; | 391 return; |
387 | 392 |
388 if (GTK_WIDGET_VISIBLE(to_toggle)) | 393 if (gtk_widget_get_visible(to_toggle)) |
389 gtk_widget_hide(to_toggle); | 394 gtk_widget_hide(to_toggle); |
390 else | 395 else |
391 gtk_widget_show(to_toggle); | 396 gtk_widget_show(to_toggle); |
392 } | 397 } |
393 | 398 |
584 | 589 |
585 return vbox; | 590 return vbox; |
586 } | 591 } |
587 | 592 |
588 static gpointer | 593 static gpointer |
589 aop_option_menu_get_selected(GtkWidget *optmenu, GtkWidget **p_item) | 594 aop_option_menu_get_selected(GtkWidget *optmenu) |
590 { | 595 { |
591 GtkWidget *menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); | 596 gpointer data = NULL; |
592 GtkWidget *item = gtk_menu_get_active(GTK_MENU(menu)); | 597 GtkTreeIter iter; |
593 if (p_item) | 598 |
594 (*p_item) = item; | 599 g_return_val_if_fail(optmenu != NULL, NULL); |
595 return item ? g_object_get_data(G_OBJECT(item), "aop_per_item_data") : NULL; | 600 |
601 if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(optmenu), &iter)) | |
602 gtk_tree_model_get(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu)), &iter, 2, &data, -1); | |
603 | |
604 return data; | |
596 } | 605 } |
597 | 606 |
598 static void | 607 static void |
599 aop_menu_cb(GtkWidget *optmenu, GCallback cb) | 608 aop_menu_cb(GtkWidget *optmenu, GCallback cb) |
600 { | 609 { |
601 GtkWidget *item; | |
602 gpointer per_item_data; | |
603 | |
604 per_item_data = aop_option_menu_get_selected(optmenu, &item); | |
605 | |
606 if (cb != NULL) { | 610 if (cb != NULL) { |
607 ((void (*)(GtkWidget *, gpointer, gpointer))cb)(item, per_item_data, g_object_get_data(G_OBJECT(optmenu), "user_data")); | 611 ((void (*)(GtkWidget *, gpointer, gpointer))cb)(optmenu, |
608 } | 612 aop_option_menu_get_selected(optmenu), |
609 } | 613 g_object_get_data(G_OBJECT(optmenu), "user_data")); |
610 | 614 } |
611 static GtkWidget * | 615 } |
612 aop_menu_item_new(GtkSizeGroup *sg, GdkPixbuf *pixbuf, const char *lbl, gpointer per_item_data, const char *data) | 616 |
613 { | 617 static void |
614 GtkWidget *item; | 618 aop_option_menu_replace_menu(GtkWidget *optmenu, AopMenu *new_aop_menu) |
615 GtkWidget *hbox; | 619 { |
616 GtkWidget *image; | 620 gtk_combo_box_set_model(GTK_COMBO_BOX(optmenu), new_aop_menu->model); |
617 GtkWidget *label; | 621 gtk_combo_box_set_active(GTK_COMBO_BOX(optmenu), new_aop_menu->default_item); |
618 | 622 g_object_set_data_full(G_OBJECT(optmenu), "aop_menu", new_aop_menu, (GDestroyNotify)g_free); |
619 item = gtk_menu_item_new(); | |
620 gtk_widget_show(item); | |
621 | |
622 hbox = gtk_hbox_new(FALSE, 4); | |
623 gtk_widget_show(hbox); | |
624 | |
625 /* Create the image */ | |
626 if (pixbuf == NULL) | |
627 image = gtk_image_new(); | |
628 else | |
629 image = gtk_image_new_from_pixbuf(pixbuf); | |
630 gtk_widget_show(image); | |
631 | |
632 if (sg) | |
633 gtk_size_group_add_widget(sg, image); | |
634 | |
635 /* Create the label */ | |
636 label = gtk_label_new (lbl); | |
637 gtk_widget_show (label); | |
638 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); | |
639 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); | |
640 | |
641 gtk_container_add(GTK_CONTAINER(item), hbox); | |
642 gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0); | |
643 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); | |
644 | |
645 g_object_set_data(G_OBJECT (item), data, per_item_data); | |
646 g_object_set_data(G_OBJECT (item), "aop_per_item_data", per_item_data); | |
647 | |
648 pidgin_set_accessible_label(item, label); | |
649 | |
650 return item; | |
651 } | 623 } |
652 | 624 |
653 static GdkPixbuf * | 625 static GdkPixbuf * |
654 pidgin_create_prpl_icon_from_prpl(PurplePlugin *prpl, PidginPrplIconSize size, PurpleAccount *account) | 626 pidgin_create_prpl_icon_from_prpl(PurplePlugin *prpl, PidginPrplIconSize size, PurpleAccount *account) |
655 { | 627 { |
686 } | 658 } |
687 | 659 |
688 static GtkWidget * | 660 static GtkWidget * |
689 aop_option_menu_new(AopMenu *aop_menu, GCallback cb, gpointer user_data) | 661 aop_option_menu_new(AopMenu *aop_menu, GCallback cb, gpointer user_data) |
690 { | 662 { |
691 GtkWidget *optmenu; | 663 GtkWidget *optmenu = NULL; |
692 | 664 GtkCellRenderer *cr = NULL; |
693 optmenu = gtk_option_menu_new(); | 665 |
666 optmenu = gtk_combo_box_new(); | |
694 gtk_widget_show(optmenu); | 667 gtk_widget_show(optmenu); |
695 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), aop_menu->menu); | 668 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(optmenu), cr = gtk_cell_renderer_pixbuf_new(), FALSE); |
696 | 669 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(optmenu), cr, "pixbuf", 0); |
697 if (aop_menu->default_item != -1) | 670 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(optmenu), cr = gtk_cell_renderer_text_new(), TRUE); |
698 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), aop_menu->default_item); | 671 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(optmenu), cr, "text", 1); |
699 | 672 |
700 g_object_set_data_full(G_OBJECT(optmenu), "aop_menu", aop_menu, (GDestroyNotify)g_free); | 673 aop_option_menu_replace_menu(optmenu, aop_menu); |
674 if (aop_menu->default_item == -1) | |
675 gtk_combo_box_set_active(GTK_COMBO_BOX(optmenu), 0); | |
701 g_object_set_data(G_OBJECT(optmenu), "user_data", user_data); | 676 g_object_set_data(G_OBJECT(optmenu), "user_data", user_data); |
702 | 677 |
703 g_signal_connect(G_OBJECT(optmenu), "changed", G_CALLBACK(aop_menu_cb), cb); | 678 g_signal_connect(G_OBJECT(optmenu), "changed", G_CALLBACK(aop_menu_cb), cb); |
704 | 679 |
705 return optmenu; | 680 return optmenu; |
706 } | |
707 | |
708 static void | |
709 aop_option_menu_replace_menu(GtkWidget *optmenu, AopMenu *new_aop_menu) | |
710 { | |
711 if (gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu))) | |
712 gtk_option_menu_remove_menu(GTK_OPTION_MENU(optmenu)); | |
713 | |
714 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), new_aop_menu->menu); | |
715 | |
716 if (new_aop_menu->default_item != -1) | |
717 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), new_aop_menu->default_item); | |
718 | |
719 g_object_set_data_full(G_OBJECT(optmenu), "aop_menu", new_aop_menu, (GDestroyNotify)g_free); | |
720 } | 681 } |
721 | 682 |
722 static void | 683 static void |
723 aop_option_menu_select_by_data(GtkWidget *optmenu, gpointer data) | 684 aop_option_menu_select_by_data(GtkWidget *optmenu, gpointer data) |
724 { | 685 { |
725 guint idx; | 686 GtkTreeModel *model; |
726 GList *llItr = NULL; | 687 GtkTreeIter iter; |
727 | 688 gpointer iter_data; |
728 for (idx = 0, llItr = GTK_MENU_SHELL(gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)))->children; | 689 model = gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu)); |
729 llItr != NULL; | 690 if (gtk_tree_model_get_iter_first(model, &iter)) { |
730 llItr = llItr->next, idx++) { | 691 do { |
731 if (data == g_object_get_data(G_OBJECT(llItr->data), "aop_per_item_data")) { | 692 gtk_tree_model_get(model, &iter, 2, &iter_data, -1); |
732 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), idx); | 693 if (iter_data == data) { |
733 break; | 694 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(optmenu), &iter); |
734 } | 695 return; |
696 } | |
697 } while (gtk_tree_model_iter_next(model, &iter)); | |
735 } | 698 } |
736 } | 699 } |
737 | 700 |
738 static AopMenu * | 701 static AopMenu * |
739 create_protocols_menu(const char *default_proto_id) | 702 create_protocols_menu(const char *default_proto_id) |
740 { | 703 { |
741 AopMenu *aop_menu = NULL; | 704 AopMenu *aop_menu = NULL; |
742 PurplePlugin *plugin; | 705 PurplePlugin *plugin; |
743 GdkPixbuf *pixbuf = NULL; | 706 GdkPixbuf *pixbuf = NULL; |
744 GtkSizeGroup *sg; | 707 GtkTreeIter iter; |
708 GtkListStore *ls; | |
745 GList *p; | 709 GList *p; |
746 const char *gtalk_name = NULL, *facebook_name = NULL; | 710 const char *gtalk_name = NULL, *facebook_name = NULL; |
747 int i; | 711 int i; |
748 | 712 |
713 ls = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); | |
714 | |
749 aop_menu = g_malloc0(sizeof(AopMenu)); | 715 aop_menu = g_malloc0(sizeof(AopMenu)); |
750 aop_menu->default_item = -1; | 716 aop_menu->default_item = -1; |
751 aop_menu->menu = gtk_menu_new(); | 717 aop_menu->model = GTK_TREE_MODEL(ls); |
752 gtk_widget_show(aop_menu->menu); | |
753 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
754 | 718 |
755 if (purple_find_prpl("prpl-jabber")) { | 719 if (purple_find_prpl("prpl-jabber")) { |
756 gtalk_name = _("Google Talk"); | 720 gtalk_name = _("Google Talk"); |
757 facebook_name = _("Facebook (XMPP)"); | 721 facebook_name = _("Facebook (XMPP)"); |
758 } | 722 } |
764 plugin = (PurplePlugin *)p->data; | 728 plugin = (PurplePlugin *)p->data; |
765 | 729 |
766 if (gtalk_name && strcmp(gtalk_name, plugin->info->name) < 0) { | 730 if (gtalk_name && strcmp(gtalk_name, plugin->info->name) < 0) { |
767 char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", | 731 char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", |
768 "16", "google-talk.png", NULL); | 732 "16", "google-talk.png", NULL); |
769 GtkWidget *item; | |
770 | |
771 pixbuf = pidgin_pixbuf_new_from_file(filename); | 733 pixbuf = pidgin_pixbuf_new_from_file(filename); |
772 g_free(filename); | 734 g_free(filename); |
773 | 735 |
774 gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), | 736 gtk_list_store_append(ls, &iter); |
775 item = aop_menu_item_new(sg, pixbuf, gtalk_name, "prpl-jabber", "protocol")); | 737 gtk_list_store_set(ls, &iter, 0, pixbuf, 1, gtalk_name, 2, "prpl-jabber", -1); |
776 g_object_set_data(G_OBJECT(item), "fakegoogle", GINT_TO_POINTER(1)); | |
777 | 738 |
778 if (pixbuf) | 739 if (pixbuf) |
779 g_object_unref(pixbuf); | 740 g_object_unref(pixbuf); |
780 | 741 |
781 gtalk_name = NULL; | 742 gtalk_name = NULL; |
783 } | 744 } |
784 | 745 |
785 if (facebook_name && strcmp(facebook_name, plugin->info->name) < 0) { | 746 if (facebook_name && strcmp(facebook_name, plugin->info->name) < 0) { |
786 char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", | 747 char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", |
787 "16", "facebook.png", NULL); | 748 "16", "facebook.png", NULL); |
788 GtkWidget *item; | |
789 | 749 |
790 pixbuf = pidgin_pixbuf_new_from_file(filename); | 750 pixbuf = pidgin_pixbuf_new_from_file(filename); |
791 g_free(filename); | 751 g_free(filename); |
792 | 752 |
793 gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), | 753 gtk_list_store_append(ls, &iter); |
794 item = aop_menu_item_new(sg, pixbuf, facebook_name, "prpl-jabber", "protocol")); | 754 gtk_list_store_set(ls, &iter, 0, pixbuf, 1, facebook_name, 2, "prpl-jabber", -1); |
795 g_object_set_data(G_OBJECT(item), "fakefacebook", GINT_TO_POINTER(1)); | |
796 | 755 |
797 if (pixbuf) | 756 if (pixbuf) |
798 g_object_unref(pixbuf); | 757 g_object_unref(pixbuf); |
799 | 758 |
800 facebook_name = NULL; | 759 facebook_name = NULL; |
801 i++; | 760 i++; |
802 } | 761 } |
803 | 762 |
804 pixbuf = pidgin_create_prpl_icon_from_prpl(plugin, PIDGIN_PRPL_ICON_SMALL, NULL); | 763 pixbuf = pidgin_create_prpl_icon_from_prpl(plugin, PIDGIN_PRPL_ICON_SMALL, NULL); |
805 | 764 |
806 gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), | 765 gtk_list_store_append(ls, &iter); |
807 aop_menu_item_new(sg, pixbuf, plugin->info->name, plugin->info->id, "protocol")); | 766 gtk_list_store_set(ls, &iter, 0, pixbuf, 1, plugin->info->name, 2, plugin->info->id, -1); |
808 | 767 |
809 if (pixbuf) | 768 if (pixbuf) |
810 g_object_unref(pixbuf); | 769 g_object_unref(pixbuf); |
811 | 770 |
812 if (default_proto_id != NULL && !strcmp(plugin->info->id, default_proto_id)) | 771 if (default_proto_id != NULL && !strcmp(plugin->info->id, default_proto_id)) |
813 aop_menu->default_item = i; | 772 aop_menu->default_item = i; |
814 } | 773 } |
815 | |
816 g_object_unref(sg); | |
817 | |
818 return aop_menu; | 774 return aop_menu; |
819 } | 775 } |
820 | 776 |
821 GtkWidget * | 777 GtkWidget * |
822 pidgin_protocol_option_menu_new(const char *id, GCallback cb, | 778 pidgin_protocol_option_menu_new(const char *id, GCallback cb, |
826 } | 782 } |
827 | 783 |
828 const char * | 784 const char * |
829 pidgin_protocol_option_menu_get_selected(GtkWidget *optmenu) | 785 pidgin_protocol_option_menu_get_selected(GtkWidget *optmenu) |
830 { | 786 { |
831 return (const char *)aop_option_menu_get_selected(optmenu, NULL); | 787 return (const char *)aop_option_menu_get_selected(optmenu); |
832 } | 788 } |
833 | 789 |
834 PurpleAccount * | 790 PurpleAccount * |
835 pidgin_account_option_menu_get_selected(GtkWidget *optmenu) | 791 pidgin_account_option_menu_get_selected(GtkWidget *optmenu) |
836 { | 792 { |
837 return (PurpleAccount *)aop_option_menu_get_selected(optmenu, NULL); | 793 return (PurpleAccount *)aop_option_menu_get_selected(optmenu); |
838 } | 794 } |
839 | 795 |
840 static AopMenu * | 796 static AopMenu * |
841 create_account_menu(PurpleAccount *default_account, | 797 create_account_menu(PurpleAccount *default_account, |
842 PurpleFilterAccountFunc filter_func, gboolean show_all) | 798 PurpleFilterAccountFunc filter_func, gboolean show_all) |
844 AopMenu *aop_menu = NULL; | 800 AopMenu *aop_menu = NULL; |
845 PurpleAccount *account; | 801 PurpleAccount *account; |
846 GdkPixbuf *pixbuf = NULL; | 802 GdkPixbuf *pixbuf = NULL; |
847 GList *list; | 803 GList *list; |
848 GList *p; | 804 GList *p; |
849 GtkSizeGroup *sg; | 805 GtkListStore *ls; |
806 GtkTreeIter iter; | |
850 int i; | 807 int i; |
851 char buf[256]; | 808 char buf[256]; |
852 | 809 |
853 if (show_all) | 810 if (show_all) |
854 list = purple_accounts_get_all(); | 811 list = purple_accounts_get_all(); |
855 else | 812 else |
856 list = purple_connections_get_all(); | 813 list = purple_connections_get_all(); |
857 | 814 |
815 ls = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); | |
816 | |
858 aop_menu = g_malloc0(sizeof(AopMenu)); | 817 aop_menu = g_malloc0(sizeof(AopMenu)); |
859 aop_menu->default_item = -1; | 818 aop_menu->default_item = -1; |
860 aop_menu->menu = gtk_menu_new(); | 819 aop_menu->model = GTK_TREE_MODEL(ls); |
861 gtk_widget_show(aop_menu->menu); | |
862 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
863 | 820 |
864 for (p = list, i = 0; p != NULL; p = p->next, i++) { | 821 for (p = list, i = 0; p != NULL; p = p->next, i++) { |
865 if (show_all) | 822 if (show_all) |
866 account = (PurpleAccount *)p->data; | 823 account = (PurpleAccount *)p->data; |
867 else { | 824 else { |
892 g_snprintf(buf, sizeof(buf), "%s (%s)", | 849 g_snprintf(buf, sizeof(buf), "%s (%s)", |
893 purple_account_get_username(account), | 850 purple_account_get_username(account), |
894 purple_account_get_protocol_name(account)); | 851 purple_account_get_protocol_name(account)); |
895 } | 852 } |
896 | 853 |
897 gtk_menu_shell_append(GTK_MENU_SHELL(aop_menu->menu), | 854 gtk_list_store_append(ls, &iter); |
898 aop_menu_item_new(sg, pixbuf, buf, account, "account")); | 855 gtk_list_store_set(ls, &iter, 0, pixbuf, 1, buf, 2, account, -1); |
899 | 856 |
900 if (pixbuf) | 857 if (pixbuf) |
901 g_object_unref(pixbuf); | 858 g_object_unref(pixbuf); |
902 | 859 |
903 if (default_account && account == default_account) | 860 if (default_account && account == default_account) |
904 aop_menu->default_item = i; | 861 aop_menu->default_item = i; |
905 } | 862 } |
906 | |
907 g_object_unref(sg); | |
908 | |
909 return aop_menu; | 863 return aop_menu; |
910 } | 864 } |
911 | 865 |
912 static void | 866 static void |
913 regenerate_account_menu(GtkWidget *optmenu) | 867 regenerate_account_menu(GtkWidget *optmenu) |
914 { | 868 { |
915 gboolean show_all; | 869 gboolean show_all; |
916 PurpleAccount *account; | 870 PurpleAccount *account; |
917 PurpleFilterAccountFunc filter_func; | 871 PurpleFilterAccountFunc filter_func; |
918 | 872 |
919 account = (PurpleAccount *)aop_option_menu_get_selected(optmenu, NULL); | 873 account = (PurpleAccount *)aop_option_menu_get_selected(optmenu); |
920 show_all = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(optmenu), "show_all")); | 874 show_all = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(optmenu), "show_all")); |
921 filter_func = g_object_get_data(G_OBJECT(optmenu), "filter_func"); | 875 filter_func = g_object_get_data(G_OBJECT(optmenu), "filter_func"); |
922 | 876 |
923 aop_option_menu_replace_menu(optmenu, create_account_menu(account, filter_func, show_all)); | 877 aop_option_menu_replace_menu(optmenu, create_account_menu(account, filter_func, show_all)); |
924 } | 878 } |
3040 time_t value; | 2994 time_t value; |
3041 | 2995 |
3042 windows = g_list_delete_link(windows, windows); | 2996 windows = g_list_delete_link(windows, windows); |
3043 | 2997 |
3044 if (window == widget || | 2998 if (window == widget || |
3045 !GTK_WIDGET_VISIBLE(window)) | 2999 !gtk_widget_get_visible(window)) |
3046 continue; | 3000 continue; |
3047 | 3001 |
3048 if (!gdk_property_get(window->window, _WindowTime, _Cardinal, 0, sizeof(time_t), FALSE, | 3002 if (!gdk_property_get(window->window, _WindowTime, _Cardinal, 0, sizeof(time_t), FALSE, |
3049 NULL, NULL, &al, &data)) | 3003 NULL, NULL, &al, &data)) |
3050 continue; | 3004 continue; |
3094 while (windows) { | 3048 while (windows) { |
3095 GtkWidget *window = windows->data; | 3049 GtkWidget *window = windows->data; |
3096 windows = g_list_delete_link(windows, windows); | 3050 windows = g_list_delete_link(windows, windows); |
3097 | 3051 |
3098 if (window == widget || | 3052 if (window == widget || |
3099 !GTK_WIDGET_VISIBLE(window)) { | 3053 !gtk_widget_get_visible(window)) { |
3100 continue; | 3054 continue; |
3101 } | 3055 } |
3102 | 3056 |
3103 if (gtk_window_has_toplevel_focus(GTK_WINDOW(window)) || | 3057 if (gtk_window_has_toplevel_focus(GTK_WINDOW(window)) || |
3104 (menu && menu == window->window)) { | 3058 (menu && menu == window->window)) { |
3735 gtk_imhtml_class_register_protocol("https://", NULL, NULL); | 3689 gtk_imhtml_class_register_protocol("https://", NULL, NULL); |
3736 gtk_imhtml_class_register_protocol("ftp://", NULL, NULL); | 3690 gtk_imhtml_class_register_protocol("ftp://", NULL, NULL); |
3737 gtk_imhtml_class_register_protocol("mailto:", NULL, NULL); | 3691 gtk_imhtml_class_register_protocol("mailto:", NULL, NULL); |
3738 gtk_imhtml_class_register_protocol("gopher://", NULL, NULL); | 3692 gtk_imhtml_class_register_protocol("gopher://", NULL, NULL); |
3739 } | 3693 } |
3740 |