Mercurial > pidgin
comparison src/gtkimhtml.c @ 12836:339d61ebca8a
[gaim-migrate @ 15184]
Revert the extra portion of my last commit that snuck in because I committed from the wrong tree.
committer: Tailor Script <tailor@pidgin.im>
| author | Richard Laager <rlaager@wiktel.com> |
|---|---|
| date | Wed, 11 Jan 2006 23:18:52 +0000 |
| parents | cb2d493e1925 |
| children | 778d08e87ad0 |
comparison
equal
deleted
inserted
replaced
| 12835:6a81da55d4d4 | 12836:339d61ebca8a |
|---|---|
| 807 | 807 |
| 808 gtk_clipboard_request_text(clipboard, paste_plaintext_received_cb, imhtml); | 808 gtk_clipboard_request_text(clipboard, paste_plaintext_received_cb, imhtml); |
| 809 | 809 |
| 810 } | 810 } |
| 811 | 811 |
| 812 static void fix_popup_menu_item_cb(GtkWidget *widget, gpointer data) | 812 |
| 813 { | |
| 814 gpointer *more_data = data; | |
| 815 int *count = more_data[0]; | |
| 816 GtkIMHtml *imhtml = more_data[1]; | |
| 817 | |
| 818 /* Destroy all items except Copy and Select All, if the text isn't editable. */ | |
| 819 if (!imhtml->editable && *count != 1 && *count != 5) | |
| 820 { | |
| 821 gtk_widget_destroy(widget); | |
| 822 } | |
| 823 else if (*count == 5 && gtk_text_buffer_get_char_count(imhtml->text_buffer) == 0) | |
| 824 { | |
| 825 /* There is no text in the buffer, so Select All should be insensitive. */ | |
| 826 gtk_widget_set_sensitive(widget, FALSE); | |
| 827 } | |
| 828 | |
| 829 (*count)++; | |
| 830 } | |
| 831 | 813 |
| 832 static void hijack_menu_cb(GtkIMHtml *imhtml, GtkMenu *menu, gpointer data) | 814 static void hijack_menu_cb(GtkIMHtml *imhtml, GtkMenu *menu, gpointer data) |
| 833 { | 815 { |
| 834 int count = 0; | |
| 835 gpointer more_data[2] = {&count, imhtml}; | |
| 836 GtkWidget *menuitem; | 816 GtkWidget *menuitem; |
| 837 | |
| 838 gtk_container_foreach(GTK_CONTAINER(menu), fix_popup_menu_item_cb, more_data); | |
| 839 | |
| 840 if (!imhtml->editable) | |
| 841 return; | |
| 842 | 817 |
| 843 menuitem = gtk_menu_item_new_with_mnemonic(_("Paste as Plain _Text")); | 818 menuitem = gtk_menu_item_new_with_mnemonic(_("Paste as Plain _Text")); |
| 844 gtk_widget_show(menuitem); | 819 gtk_widget_show(menuitem); |
| 845 gtk_widget_set_sensitive(menuitem, | 820 gtk_widget_set_sensitive(menuitem, |
| 846 (gtk_clipboard_wait_is_text_available( | 821 (imhtml->editable && |
| 847 gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_CLIPBOARD)))); | 822 gtk_clipboard_wait_is_text_available( |
| 823 gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_CLIPBOARD)))); | |
| 848 /* put it after "Paste" */ | 824 /* put it after "Paste" */ |
| 849 gtk_menu_shell_insert(GTK_MENU_SHELL(menu), menuitem, 3); | 825 gtk_menu_shell_insert(GTK_MENU_SHELL(menu), menuitem, 3); |
| 850 | 826 |
| 851 g_signal_connect(G_OBJECT(menuitem), "activate", | 827 g_signal_connect(G_OBJECT(menuitem), "activate", |
| 852 G_CALLBACK(paste_unformatted_cb), imhtml); | 828 G_CALLBACK(paste_unformatted_cb), imhtml); |
