rendered paste bodyIndex: gtksourceview/gtksourceview.c===================================================================RCS file: /cvs/gnome/gtksourceview/gtksourceview/gtksourceview.c,vretrieving revision 1.42diff -u -p -r1.42 gtksourceview.c--- gtksourceview/gtksourceview.c 31 Dec 2005 17:29:19 -0000 1.42+++ gtksourceview/gtksourceview.c 8 Jan 2006 09:41:16 -0000@@ -609,14 +609,14 @@ set_source_buffer (GtkSourceView *view, marker_updated_cb, view); g_object_remove_weak_pointer (G_OBJECT (view->priv->source_buffer),- (gpointer *) &view->priv->source_buffer);+ (gpointer) &view->priv->source_buffer); } if (buffer && GTK_IS_SOURCE_BUFFER (buffer)) { view->priv->source_buffer = GTK_SOURCE_BUFFER (buffer); g_object_add_weak_pointer (G_OBJECT (buffer),- (gpointer *) &view->priv->source_buffer);+ (gpointer) &view->priv->source_buffer); g_signal_connect (buffer, "highlight_updated", G_CALLBACK (highlight_updated_cb),@@ -1284,12 +1284,19 @@ gtk_source_view_expose (GtkWidget * redraw_rect.width, height); }+ + if (GTK_WIDGET_CLASS (parent_class)->expose_event)+ event_handled = + (* GTK_WIDGET_CLASS (parent_class)->expose_event)+ (widget, event); if (view->priv->show_margin && (event->window == gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT))) { GdkRectangle visible_rect; GdkRectangle redraw_rect;+ cairo_t *cr;+ double x; if (view->priv->cached_margin_width < 0) view->priv->cached_margin_width =@@ -1307,25 +1314,36 @@ gtk_source_view_expose (GtkWidget * redraw_rect.width = visible_rect.width; redraw_rect.height = visible_rect.height; - gtk_paint_vline (widget->style, - event->window, - GTK_WIDGET_STATE (widget), - &redraw_rect, - widget,- "margin", - redraw_rect.y, - redraw_rect.y + redraw_rect.height, - view->priv->cached_margin_width -- visible_rect.x + redraw_rect.x +- gtk_text_view_get_left_margin (text_view));- }+ cr = gdk_cairo_create (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT));+ + /* Set a clip region for the expose event. */+ cairo_rectangle (cr, event->area.x, event->area.y,+ event->area.width, event->area.height);+ cairo_clip (cr);++ x = view->priv->cached_margin_width -+ visible_rect.x + redraw_rect.x + 0.5 ++ gtk_text_view_get_left_margin (text_view); - - if (GTK_WIDGET_CLASS (parent_class)->expose_event)- event_handled = - (* GTK_WIDGET_CLASS (parent_class)->expose_event)- (widget, event);+ cairo_set_line_width (cr, 0.5 *+ cairo_get_line_width (cr)); + cairo_move_to (cr, x, redraw_rect.y);+ cairo_line_to (cr, x, redraw_rect.y + redraw_rect.height);+ + cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);+ cairo_stroke (cr);+ + cairo_rectangle (cr,+ x,+ redraw_rect.y,+ redraw_rect.width - x,+ redraw_rect.y + redraw_rect.height);+ cairo_set_source_rgba (cr, 0.8, 0.8, 0.8, 0.5);+ cairo_fill (cr);++ cairo_destroy (cr);+ } } return event_handled;