src/gtkimhtml.c

changeset 10767
352418bb3597
parent 10761
cbfb52c33913
child 10768
b14e5ab9511f
equal deleted inserted replaced
10766:d9bafdcdafb2 10767:352418bb3597
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);

mercurial