comparison src/gtkimhtml.c @ 10767:3e4991079b2f

[gaim-migrate @ 12373] whole-buffer formatting background colors will take up, get this, the whole buffer. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sat, 02 Apr 2005 02:34:24 +0000
parents 7c6b69eb82f2
children 97a7d3f9f0c6
comparison
equal deleted inserted replaced
10766:4e64283bf3cb 10767:3e4991079b2f
540 int top, bottom, height, win_top, win_bottom; 540 int top, bottom, height, win_top, win_bottom;
541 GtkTextIter start, end; 541 GtkTextIter start, end;
542 542
543 GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(event->window)); 543 GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(event->window));
544 GdkColor color; 544 GdkColor color;
545 545
546 gtk_text_buffer_get_iter_at_mark (GTK_IMHTML(widget)->text_buffer, &start, tag->start);
547
548 if (tag->end)
549 gtk_text_buffer_get_iter_at_mark (GTK_IMHTML(widget)->text_buffer, &end, tag->end);
550 else
551 gtk_text_buffer_get_end_iter (GTK_IMHTML(widget)->text_buffer, &end);
552
553 gtk_text_view_get_line_yrange (GTK_TEXT_VIEW(widget), &start, &top, NULL);
554 gtk_text_view_get_line_yrange (GTK_TEXT_VIEW(widget), &end, &bottom, &height);
555
556 gtk_text_view_get_visible_rect (GTK_TEXT_VIEW(widget), &visible_rect); 546 gtk_text_view_get_visible_rect (GTK_TEXT_VIEW(widget), &visible_rect);
557 gtk_text_view_buffer_to_window_coords (GTK_TEXT_VIEW(widget), 547 gtk_text_view_buffer_to_window_coords (GTK_TEXT_VIEW(widget),
558 GTK_TEXT_WINDOW_TEXT, 548 GTK_TEXT_WINDOW_TEXT,
559 visible_rect.x, 549 visible_rect.x,
560 visible_rect.y, 550 visible_rect.y,
561 &redraw_rect.x, 551 &redraw_rect.x,
562 &redraw_rect.y); 552 &redraw_rect.y);
553
554 if (GTK_IMHTML(widget)->wbfo) {
555 gdk_color_parse(GTK_IMHTML(widget)->edit.backcolor, &color);
556 gdk_gc_set_rgb_fg_color(gc, &color);
557 gdk_draw_rectangle(event->window,
558 gc,
559 TRUE,
560 redraw_rect.x, redraw_rect.y, redraw_rect.width, redraw_rect.height);
561 return (* GTK_WIDGET_CLASS (parent_class)->expose_event)
562 (widget, event);
563 ;
564 }
565
566 gtk_text_buffer_get_iter_at_mark (GTK_IMHTML(widget)->text_buffer, &start, tag->start);
567
568 if (tag->end)
569 gtk_text_buffer_get_iter_at_mark (GTK_IMHTML(widget)->text_buffer, &end, tag->end);
570 else
571 gtk_text_buffer_get_end_iter (GTK_IMHTML(widget)->text_buffer, &end);
572
573 gtk_text_view_get_line_yrange (GTK_TEXT_VIEW(widget), &start, &top, NULL);
574 gtk_text_view_get_line_yrange (GTK_TEXT_VIEW(widget), &end, &bottom, &height);
575
576
563 gtk_text_view_buffer_to_window_coords (GTK_TEXT_VIEW(widget), 577 gtk_text_view_buffer_to_window_coords (GTK_TEXT_VIEW(widget),
564 GTK_TEXT_WINDOW_TEXT, 578 GTK_TEXT_WINDOW_TEXT,
565 0, 579 0,
566 top, 580 top,
567 NULL, 581 NULL,
575 redraw_rect.width = visible_rect.width; 589 redraw_rect.width = visible_rect.width;
576 redraw_rect.height = visible_rect.height; 590 redraw_rect.height = visible_rect.height;
577 591
578 592
579 593
580 gdk_color_parse(tag->color, &color); 594
581 gdk_gc_set_rgb_fg_color(gc, &color);
582
583 gdk_draw_rectangle(event->window, 595 gdk_draw_rectangle(event->window,
584 gc, 596 gc,
585 TRUE, 597 TRUE,
586 redraw_rect.x, win_top, redraw_rect.width, win_bottom - win_top); 598 redraw_rect.x, win_top, redraw_rect.width, win_bottom - win_top);
587 gdk_gc_unref(gc); 599 gdk_gc_unref(gc);