Mercurial > pidgin.yaz
comparison src/gtkimhtml.c @ 8786:f3d063680a45
[gaim-migrate @ 9548]
Tim "marv" Ringenbach brazenly busted Gtk2.0 compatability, but then he
amicably fixed it. That's the kind of crazy patch-writing we like to
see. Only maybe next time it can be before release, and not after. ;-)
committer: Tailor Script <tailor@pidgin.im>
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Sat, 24 Apr 2004 00:45:58 +0000 |
parents | 5a2b5e4abf3a |
children | 262f81346c0a |
comparison
equal
deleted
inserted
replaced
8785:a871dec1c9d6 | 8786:f3d063680a45 |
---|---|
63 #ifndef GTK_WRAP_WORD_CHAR | 63 #ifndef GTK_WRAP_WORD_CHAR |
64 #define GTK_WRAP_WORD_CHAR GTK_WRAP_WORD | 64 #define GTK_WRAP_WORD_CHAR GTK_WRAP_WORD |
65 #endif | 65 #endif |
66 | 66 |
67 #define TOOLTIP_TIMEOUT 500 | 67 #define TOOLTIP_TIMEOUT 500 |
68 | |
69 /* GTK+ 2.0 hack */ | |
70 #if (!GTK_CHECK_VERSION(2,2,0)) | |
71 #define gtk_widget_get_clipboard(x, y) gtk_clipboard_get(y) | |
72 #endif | |
68 | 73 |
69 static void preinsert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); | 74 static void preinsert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); |
70 static void insert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); | 75 static void insert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); |
71 static gboolean gtk_imhtml_is_amp_escape (const gchar *string, gchar **replace, gint *length); | 76 static gboolean gtk_imhtml_is_amp_escape (const gchar *string, gchar **replace, gint *length); |
72 void gtk_imhtml_close_tags(GtkIMHtml *imhtml, GtkTextIter *iter); | 77 void gtk_imhtml_close_tags(GtkIMHtml *imhtml, GtkTextIter *iter); |
534 return TRUE; | 539 return TRUE; |
535 } | 540 } |
536 return FALSE; | 541 return FALSE; |
537 } | 542 } |
538 | 543 |
539 #if GTK_CHECK_VERSION(2,2,0) | |
540 static void gtk_imhtml_clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection_data, guint info, GtkIMHtml *imhtml) { | 544 static void gtk_imhtml_clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection_data, guint info, GtkIMHtml *imhtml) { |
541 char *text; | 545 char *text; |
542 gboolean primary; | 546 gboolean primary; |
543 GtkTextIter start, end; | 547 GtkTextIter start, end; |
544 GtkTextMark *sel = gtk_text_buffer_get_selection_bound(imhtml->text_buffer); | 548 GtkTextMark *sel = gtk_text_buffer_get_selection_bound(imhtml->text_buffer); |
804 static void imhtml_destroy_add_primary(GtkIMHtml *imhtml, gpointer unused) | 808 static void imhtml_destroy_add_primary(GtkIMHtml *imhtml, gpointer unused) |
805 { | 809 { |
806 gtk_text_buffer_add_selection_clipboard(GTK_IMHTML(imhtml)->text_buffer, | 810 gtk_text_buffer_add_selection_clipboard(GTK_IMHTML(imhtml)->text_buffer, |
807 gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_PRIMARY)); | 811 gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_PRIMARY)); |
808 } | 812 } |
809 #endif | |
810 | 813 |
811 static void mark_set_so_update_selection_cb(GtkTextBuffer *buffer, GtkTextIter *arg1, GtkTextMark *mark, GtkIMHtml *imhtml) | 814 static void mark_set_so_update_selection_cb(GtkTextBuffer *buffer, GtkTextIter *arg1, GtkTextMark *mark, GtkIMHtml *imhtml) |
812 { | 815 { |
813 if (gtk_text_buffer_get_selection_bounds(buffer, NULL, NULL)) { | 816 if (gtk_text_buffer_get_selection_bounds(buffer, NULL, NULL)) { |
814 gtk_clipboard_set_with_owner(gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_PRIMARY), | 817 gtk_clipboard_set_with_owner(gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_PRIMARY), |
987 gtk_drag_dest_set(GTK_WIDGET(imhtml), 0, | 990 gtk_drag_dest_set(GTK_WIDGET(imhtml), 0, |
988 link_drag_drop_targets, sizeof(link_drag_drop_targets) / sizeof(GtkTargetEntry), | 991 link_drag_drop_targets, sizeof(link_drag_drop_targets) / sizeof(GtkTargetEntry), |
989 GDK_ACTION_COPY); | 992 GDK_ACTION_COPY); |
990 g_signal_connect(G_OBJECT(imhtml), "drag_data_received", G_CALLBACK(gtk_imhtml_link_drag_rcv_cb), imhtml); | 993 g_signal_connect(G_OBJECT(imhtml), "drag_data_received", G_CALLBACK(gtk_imhtml_link_drag_rcv_cb), imhtml); |
991 | 994 |
992 #if GTK_CHECK_VERSION(2,2,0) | |
993 g_signal_connect(G_OBJECT(imhtml), "copy-clipboard", G_CALLBACK(copy_clipboard_cb), NULL); | 995 g_signal_connect(G_OBJECT(imhtml), "copy-clipboard", G_CALLBACK(copy_clipboard_cb), NULL); |
994 g_signal_connect(G_OBJECT(imhtml), "cut-clipboard", G_CALLBACK(cut_clipboard_cb), NULL); | 996 g_signal_connect(G_OBJECT(imhtml), "cut-clipboard", G_CALLBACK(cut_clipboard_cb), NULL); |
995 g_signal_connect(G_OBJECT(imhtml), "paste-clipboard", G_CALLBACK(paste_clipboard_cb), NULL); | 997 g_signal_connect(G_OBJECT(imhtml), "paste-clipboard", G_CALLBACK(paste_clipboard_cb), NULL); |
996 //g_signal_connect_after(G_OBJECT(imhtml), "button-release-event", G_CALLBACK(button_release_cb), imhtml); | 998 //g_signal_connect_after(G_OBJECT(imhtml), "button-release-event", G_CALLBACK(button_release_cb), imhtml); |
997 g_signal_connect_after(G_OBJECT(imhtml), "realize", G_CALLBACK(imhtml_realized_remove_primary), NULL); | 999 g_signal_connect_after(G_OBJECT(imhtml), "realize", G_CALLBACK(imhtml_realized_remove_primary), NULL); |
998 g_signal_connect(G_OBJECT(imhtml), "unrealize", G_CALLBACK(imhtml_destroy_add_primary), NULL); | 1000 g_signal_connect(G_OBJECT(imhtml), "unrealize", G_CALLBACK(imhtml_destroy_add_primary), NULL); |
999 #endif | |
1000 | 1001 |
1001 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", | 1002 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", |
1002 G_CALLBACK(mark_set_so_update_selection_cb), imhtml); | 1003 G_CALLBACK(mark_set_so_update_selection_cb), imhtml); |
1003 | 1004 |
1004 gtk_widget_add_events(GTK_WIDGET(imhtml), GDK_LEAVE_NOTIFY_MASK); | 1005 gtk_widget_add_events(GTK_WIDGET(imhtml), GDK_LEAVE_NOTIFY_MASK); |