All pastes #36164 Raw Edit

Anonymous

public c v1 · immutable
#36164 ·published 2006-01-08 09:41 UTC
rendered paste body
Index: 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;