comparison src/dialogs.c @ 5275:8bd4f777489f

[gaim-migrate @ 5647] inserting a smiley now replaces any hilighted text, like you'd think it would. also gets rid of a gtk warning when adding a smiley committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Thu, 01 May 2003 17:47:32 +0000
parents 4ac135a2f422
children d579d5367836
comparison
equal deleted inserted replaced
5274:ad299f62b9b6 5275:8bd4f777489f
3471 3471
3472 if (gtkconv->toolbar.smiley) { 3472 if (gtkconv->toolbar.smiley) {
3473 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), 3473 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley),
3474 FALSE); 3474 FALSE);
3475 } 3475 }
3476 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley); 3476 if(gtkconv->dialogs.smiley) {
3477 gtk_widget_destroy(gtkconv->dialogs.smiley); 3477 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley);
3478 gtkconv->dialogs.smiley = NULL; 3478 gtk_widget_destroy(gtkconv->dialogs.smiley);
3479 gtkconv->dialogs.smiley = NULL;
3480 }
3479 } 3481 }
3480 3482
3481 void insert_smiley_text(GtkWidget *widget, struct gaim_conversation *c) 3483 void insert_smiley_text(GtkWidget *widget, struct gaim_conversation *c)
3482 { 3484 {
3483 struct gaim_gtk_conversation *gtkconv; 3485 struct gaim_gtk_conversation *gtkconv;
3484 char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text"); 3486 char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text");
3487 GtkTextMark *select_mark, *insert_mark;
3488 GtkTextIter select_iter, insert_iter;
3485 3489
3486 gtkconv = GAIM_GTK_CONVERSATION(c); 3490 gtkconv = GAIM_GTK_CONVERSATION(c);
3491
3492 select_mark = gtk_text_buffer_get_selection_bound(gtkconv->entry_buffer);
3493 insert_mark = gtk_text_buffer_get_insert(gtkconv->entry_buffer);
3494
3495 if(insert_mark != select_mark) { /* there is text selected */
3496 gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &select_iter, select_mark);
3497 gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &insert_iter, insert_mark);
3498 gtk_text_buffer_delete(gtkconv->entry_buffer, &select_iter, &insert_iter);
3499 }
3487 3500
3488 gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1); 3501 gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1);
3489 close_smiley_dialog(NULL, c); 3502 close_smiley_dialog(NULL, c);
3490 } 3503 }
3491 3504