[goffice] Fix bounds and distance for rectangle and paths in RTL mode. [#753963]
- From: Jean Bréfort <jbrefort src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [goffice] Fix bounds and distance for rectangle and paths in RTL mode. [#753963]
- Date: Mon, 24 Aug 2015 08:51:46 +0000 (UTC)
commit 10e4ce6cffc29efbf302322efd01e66f83995d98
Author: Jean Brefort <jean brefort normalesup org>
Date: Mon Aug 24 10:51:23 2015 +0200
Fix bounds and distance for rectangle and paths in RTL mode. [#753963]
ChangeLog | 6 ++++++
NEWS | 3 +++
goffice/canvas/goc-path.c | 7 +++----
goffice/canvas/goc-rectangle.c | 3 ++-
4 files changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 5a88c8f..b5bfc52 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-08-24 Jean Brefort <jean brefort normalesup org>
+
+ * goffice/canvas/goc-path.c (goc_path_prepare_draw): fix bounds and distance
+ in RTL mode. [#753963]
+ * goffice/canvas/goc-rectangle.c (goc_rectangle_prepare_draw): ditto.
+
2015-08-01 Morten Welinder <terra gnome org>
* goffice/utils/go-format.c (go_render_general): Also try the
diff --git a/NEWS b/NEWS
index dfdbe8c..9e63f71 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
goffice 0.10.24:
+Jean:
+ * Fix bounds and distance for rectangle and paths in RTL mode. [#753963]
+
--------------------------------------------------------------------------
goffice 0.10.23:
diff --git a/goffice/canvas/goc-path.c b/goffice/canvas/goc-path.c
index 320ed6a..6529729 100644
--- a/goffice/canvas/goc-path.c
+++ b/goffice/canvas/goc-path.c
@@ -124,17 +124,16 @@ goc_path_prepare_draw (GocItem const *item, cairo_t *cr, gboolean flag)
{
GocPath *path = GOC_PATH (item);
double sign = (goc_canvas_get_direction (item->canvas) == GOC_DIRECTION_RTL)? -1: 1;
- double rsign = sign;
_goc_item_transform (item, cr, flag);
if (1 == flag) {
goc_group_cairo_transform (item->parent, cr, path->x , path->y);
} else {
- cairo_translate (cr, path->x , path->y);
- rsign = 1;
+ cairo_translate (cr, path->x, path->y);
+ sign = 1;
}
cairo_scale (cr, sign, 1.);
- cairo_rotate (cr, path->rotation * rsign);
+ cairo_rotate (cr, path->rotation * sign);
go_path_to_cairo (path->path, GO_PATH_DIRECTION_FORWARD, cr);
return TRUE;
diff --git a/goffice/canvas/goc-rectangle.c b/goffice/canvas/goc-rectangle.c
index bc780e6..9549ea7 100644
--- a/goffice/canvas/goc-rectangle.c
+++ b/goffice/canvas/goc-rectangle.c
@@ -146,12 +146,13 @@ goc_rectangle_prepare_draw (GocItem const *item, cairo_t *cr, gboolean flag)
_goc_item_transform (item, cr, flag);
if (1 == flag) {
goc_group_cairo_transform (item->parent, cr, rect->x, rect->y);
+ cairo_scale (cr, sign, 1.);
} else {
cairo_translate (cr, rect->x, rect->y);
}
cairo_rotate (cr, rect->rotation * sign);
if (0 == rect->type || 0 == rect->rx || 0 == rect->ry) {
- cairo_rectangle (cr, 0., 0., (int) rect->width * sign, (int) rect->height);
+ cairo_rectangle (cr, 0., 0., (int) rect->width, (int) rect->height);
} else {
if (rect->type & 1) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]