comparison src/gtkimhtml.c @ 8428:018406bb4ab6

[gaim-migrate @ 9158] These fixes are going to come in rapid succession until I have to leave. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Thu, 11 Mar 2004 20:18:38 +0000
parents 2e18099ded93
children 1b6c43246cf6
comparison
equal deleted inserted replaced
8427:2e18099ded93 8428:018406bb4ab6
2525 span->buffer = imhtml->text_buffer; 2525 span->buffer = imhtml->text_buffer;
2526 span->tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), "BOLD"); 2526 span->tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), "BOLD");
2527 imhtml->edit.bold = span; 2527 imhtml->edit.bold = span;
2528 imhtml->format_spans = g_list_append(imhtml->format_spans, span); 2528 imhtml->format_spans = g_list_append(imhtml->format_spans, span);
2529 } else { 2529 } else {
2530 GtkTextIter start;
2530 span = imhtml->edit.bold; 2531 span = imhtml->edit.bold;
2531 span->end = gtk_text_buffer_create_mark(imhtml->text_buffer, NULL, &iter, TRUE); 2532 span->end = gtk_text_buffer_create_mark(imhtml->text_buffer, NULL, &iter, TRUE);
2533 gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &start, span->start);
2534 if (gtk_text_iter_equal(&start, &iter)) { /* Format turned off before any text was entered, so remove the tag */
2535 imhtml->format_spans = g_list_remove(imhtml->format_spans, span);
2536 if (span->start_tag)
2537 g_free(span->start_tag);
2538 if (span->end_tag)
2539 g_free(span->end_tag);
2540 g_free(span);
2541 }
2532 imhtml->edit.bold = NULL; 2542 imhtml->edit.bold = NULL;
2533 } 2543 }
2534 return imhtml->edit.bold != NULL; 2544 return imhtml->edit.bold != NULL;
2535 } 2545 }
2536 2546
2549 span->buffer = imhtml->text_buffer; 2559 span->buffer = imhtml->text_buffer;
2550 span->tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), "ITALIC"); 2560 span->tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), "ITALIC");
2551 imhtml->edit.italic = span; 2561 imhtml->edit.italic = span;
2552 imhtml->format_spans = g_list_append(imhtml->format_spans, span); 2562 imhtml->format_spans = g_list_append(imhtml->format_spans, span);
2553 } else { 2563 } else {
2564 GtkTextIter start;
2554 span = imhtml->edit.italic; 2565 span = imhtml->edit.italic;
2555 span->end = gtk_text_buffer_create_mark(imhtml->text_buffer, NULL, &iter, TRUE); 2566 span->end = gtk_text_buffer_create_mark(imhtml->text_buffer, NULL, &iter, TRUE);
2567 gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &start, span->start);
2568 if (gtk_text_iter_equal(&start, &iter)) { /* Format turned off before any text was entered, so remove the tag */
2569 imhtml->format_spans = g_list_remove(imhtml->format_spans, span);
2570 if (span->start_tag)
2571 g_free(span->start_tag);
2572 if (span->end_tag)
2573 g_free(span->end_tag);
2574 g_free(span);
2575 }
2556 imhtml->edit.italic = NULL; 2576 imhtml->edit.italic = NULL;
2557 } 2577 }
2558 return imhtml->edit.italic != NULL; 2578 return imhtml->edit.italic != NULL;
2559 } 2579 }
2560 2580
2573 span->buffer = imhtml->text_buffer; 2593 span->buffer = imhtml->text_buffer;
2574 span->tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), "UNDERLINE"); 2594 span->tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(imhtml->text_buffer), "UNDERLINE");
2575 imhtml->edit.underline = span; 2595 imhtml->edit.underline = span;
2576 imhtml->format_spans = g_list_append(imhtml->format_spans, span); 2596 imhtml->format_spans = g_list_append(imhtml->format_spans, span);
2577 } else { 2597 } else {
2598 GtkTextIter start;
2578 span = imhtml->edit.underline; 2599 span = imhtml->edit.underline;
2579 span->end = gtk_text_buffer_create_mark(imhtml->text_buffer, NULL, &iter, TRUE); 2600 span->end = gtk_text_buffer_create_mark(imhtml->text_buffer, NULL, &iter, TRUE);
2601 gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &start, span->start);
2602 if (gtk_text_iter_equal(&start, &iter)) { /* Format turned off before any text was entered, so remove the tag */
2603 imhtml->format_spans = g_list_remove(imhtml->format_spans, span);
2604 if (span->start_tag)
2605 g_free(span->start_tag);
2606 if (span->end_tag)
2607 g_free(span->end_tag);
2608 g_free(span);
2609 }
2580 imhtml->edit.underline = NULL; 2610 imhtml->edit.underline = NULL;
2581 } 2611 }
2582 return imhtml->edit.underline != NULL; 2612 return imhtml->edit.underline != NULL;
2583 } 2613 }
2584 2614
2936 GtkIMHtmlFormatSpan *span = (GtkIMHtmlFormatSpan*)closers->data; 2966 GtkIMHtmlFormatSpan *span = (GtkIMHtmlFormatSpan*)closers->data;
2937 str = g_string_append(str, span->end_tag); 2967 str = g_string_append(str, span->end_tag);
2938 closers = g_list_remove(closers, span); 2968 closers = g_list_remove(closers, span);
2939 2969
2940 } 2970 }
2971 printf("gotten: %s\n", str->str);
2941 return g_string_free(str, FALSE); 2972 return g_string_free(str, FALSE);
2942 } 2973 }
2943 2974
2944 void gtk_imhtml_close_tags(GtkIMHtml *imhtml) 2975 void gtk_imhtml_close_tags(GtkIMHtml *imhtml)
2945 { 2976 {