pidgin/plugins/screencap.c

changeset 35947
0c93751c7c96
parent 35946
44e9ed3cc8fe
child 35948
9f1d8958dc60
equal deleted inserted replaced
35946:44e9ed3cc8fe 35947:0c93751c7c96
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
18 */ 18 */
19 19
20 /* TODO: disable, when prpl doesn't support inline images */ 20 /* TODO: disable, when prpl doesn't support inline images */
21 /* TODO: add "Insert screenshot" to the Conversation window menu */ 21 /* TODO: add "Insert screenshot" to the Conversation window menu */
22 /* TODO: add a possibility to change brush color */
22 23
23 #include "internal.h" 24 #include "internal.h"
24 25
25 #include <gdk/gdkkeysyms.h> 26 #include <gdk/gdkkeysyms.h>
26 27
666 667
667 scrncap_btn_wide = GTK_TOOL_ITEM(gtk_action_create_tool_item(action)); 668 scrncap_btn_wide = GTK_TOOL_ITEM(gtk_action_create_tool_item(action));
668 scrncap_conv_set_data(gtkconv, "scrncap-btn-wide", scrncap_btn_wide); 669 scrncap_conv_set_data(gtkconv, "scrncap-btn-wide", scrncap_btn_wide);
669 for (i = 0; i < gtk_toolbar_get_n_items(wide_view); i++) { 670 for (i = 0; i < gtk_toolbar_get_n_items(wide_view); i++) {
670 GtkToolItem *ref_item = gtk_toolbar_get_nth_item(wide_view, i); 671 GtkToolItem *ref_item = gtk_toolbar_get_nth_item(wide_view, i);
671 const gchar *action_name; 672 GtkAction *action;
672 673
673 action_name = g_object_get_data(G_OBJECT(ref_item), 674 action = g_object_get_data(G_OBJECT(ref_item), "action");
674 "action-name"); 675 if (action == NULL)
675 if (g_strcmp0(action_name, "InsertImage") == 0) { 676 continue;
677
678 if (g_strcmp0(gtk_action_get_name(action), "InsertImage") == 0) {
676 pos = i + 1; 679 pos = i + 1;
677 break; 680 break;
678 } 681 }
679 } 682 }
680 gtk_toolbar_insert(wide_view, scrncap_btn_wide, pos); 683 gtk_toolbar_insert(wide_view, scrncap_btn_wide, pos);
681 gtk_widget_show(GTK_WIDGET(scrncap_btn_wide)); 684 gtk_widget_show(GTK_WIDGET(scrncap_btn_wide));
682 685
683 for (i = 0; i < gtk_toolbar_get_n_items(lean_view); i++) { 686 for (i = 0; i < gtk_toolbar_get_n_items(lean_view); i++) {
684 GtkToolItem *ref_item = gtk_toolbar_get_nth_item(lean_view, i); 687 GtkToolItem *ref_item = gtk_toolbar_get_nth_item(lean_view, i);
685 const gchar *action_name; 688 const gchar *menu_name;
686 689
687 action_name = g_object_get_data(G_OBJECT(ref_item), "action-name"); 690 menu_name = g_object_get_data(G_OBJECT(ref_item), "menu-name");
688 if (g_strcmp0(action_name, "insert") == 0) { 691 if (g_strcmp0(menu_name, "insert") == 0) {
689 wide_menu = g_object_get_data(G_OBJECT(ref_item), "menu"); 692 wide_menu = g_object_get_data(G_OBJECT(ref_item), "menu");
690 break; 693 break;
691 } 694 }
692 } 695 }
693 g_return_if_fail(wide_menu); 696 g_return_if_fail(wide_menu);
694 697
695 pos = -1; 698 pos = -1;
696 wide_children = gtk_container_get_children(GTK_CONTAINER(wide_menu)); 699 wide_children = gtk_container_get_children(GTK_CONTAINER(wide_menu));
697 for (it = wide_children, i = 0; it; it = g_list_next(it), i++) { 700 for (it = wide_children, i = 0; it; it = g_list_next(it), i++) {
698 GtkWidget *child = it->data; 701 GtkWidget *child = it->data;
699 const gchar *action_name; 702 GtkAction *action;
700 703
701 action_name = g_object_get_data(G_OBJECT(child), "action-name"); 704 action = g_object_get_data(G_OBJECT(child), "action");
702 if (g_strcmp0(action_name, "InsertImage") == 0) { 705 if (action == NULL)
706 continue;
707
708 if (g_strcmp0(gtk_action_get_name(action), "InsertImage") == 0) {
703 pos = i + 1; 709 pos = i + 1;
704 break; 710 break;
705 } 711 }
706 } 712 }
707 g_list_free(wide_children); 713 g_list_free(wide_children);

mercurial