goffice r2328 - in trunk: . goffice/graph plugins/plot_barcol



Author: jbrefort
Date: Fri Mar  6 13:55:21 2009
New Revision: 2328
URL: http://svn.gnome.org/viewvc/goffice?rev=2328&view=rev

Log:
2009-03-06  Jean Brefort  <jean brefort normalesup org>

	* goffice/graph/gog-renderer.c: (_draw_rectangle): revert previous
	change.
	* plugins/plot_barcol/gog-dropbar.c: (barcol_draw_rect): ensure that
	the width and height are positive.



Modified:
   trunk/ChangeLog
   trunk/goffice/graph/gog-renderer.c
   trunk/plugins/plot_barcol/gog-dropbar.c

Modified: trunk/goffice/graph/gog-renderer.c
==============================================================================
--- trunk/goffice/graph/gog-renderer.c	(original)
+++ trunk/goffice/graph/gog-renderer.c	Fri Mar  6 13:55:21 2009
@@ -659,7 +659,7 @@
 {
 	GogStyle const *style;
 	GOPath *path;
-	gboolean narrow = (fabs (rect->w) < 3.) || (fabs (rect->h) < 3.);
+	gboolean narrow = (rect->w < 3.) || (rect->h < 3.);
 	double o, o_2;
 
 	g_return_if_fail (IS_GOG_RENDERER (rend));

Modified: trunk/plugins/plot_barcol/gog-dropbar.c
==============================================================================
--- trunk/plugins/plot_barcol/gog-dropbar.c	(original)
+++ trunk/plugins/plot_barcol/gog-dropbar.c	Fri Mar  6 13:55:21 2009
@@ -105,12 +105,25 @@
 		  GogViewAllocation const *rect)
 {
 	GogViewAllocation r;
+	double t;
 
 	if (flip) {
 		r.x = gog_axis_map_to_view (x_map, rect->y);
-		r.w = gog_axis_map_to_view (x_map, rect->y + rect->h) - r.x;
+		t = gog_axis_map_to_view (x_map, rect->y + rect->h);
+		if (t > r.x)
+			r.w = t - r.x;
+		else {
+			r.w = r.x - t;
+			r.x = t;
+		}
 		r.y = gog_axis_map_to_view (y_map, rect->x);
-		r.h = gog_axis_map_to_view (y_map, rect->x + rect->w) - r.y;
+		t = gog_axis_map_to_view (y_map, rect->x + rect->w);
+		if (t > r.y)
+			r.h = t - r.y;
+		else {
+			r.h = r.y - t;
+			r.y = t;
+		}
 		if (fabs (r.w) < 1.) {
 			r.w += 1.;
 			r.x -= .5;
@@ -121,9 +134,21 @@
 		}
 	} else {
 		r.x = gog_axis_map_to_view (x_map, rect->x);
-		r.w = gog_axis_map_to_view (x_map, rect->x + rect->w) - r.x;
+		t = gog_axis_map_to_view (x_map, rect->x + rect->w);
+		if (t > r.x)
+			r.w = t - r.x;
+		else {
+			r.w = r.x - t;
+			r.x = t;
+		}
 		r.y = gog_axis_map_to_view (y_map, rect->y);
-		r.h = gog_axis_map_to_view (y_map, rect->y + rect->h) - r.y;
+		t = gog_axis_map_to_view (y_map, rect->y + rect->h);
+		if (t > r.y)
+			r.h = t - r.y;
+		else {
+			r.h = r.y - t;
+			r.y = t;
+		}
 		if (fabs (r.w) < 1.) {
 			r.w += 1.;
 			r.x -= .5;
@@ -133,7 +158,6 @@
 			r.y -= .5;
 		}
 	}
-
 	gog_renderer_draw_rectangle (rend, &r);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]