[gimp] app: don't set properties of invisible handles in GimpToolTransformGrid
- From: N/A <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: don't set properties of invisible handles in GimpToolTransformGrid
- Date: Sun, 4 Feb 2018 19:45:47 +0000 (UTC)
commit 534e5971fc80c5054e7e7e0a9c4926e291794a42
Author: Ell <ell_se yahoo com>
Date: Sun Feb 4 14:37:58 2018 -0500
app: don't set properties of invisible handles in GimpToolTransformGrid
This avoids warnings when the handle positions the handle-transform
tool result in a matrix that transforms the TransformGrid's handles
(which are all invisible) to coordinates that are outside of the
corresponding properties' range.
app/display/gimptooltransformgrid.c | 76 ++++++++++++++++++++++------------
1 files changed, 49 insertions(+), 27 deletions(-)
---
diff --git a/app/display/gimptooltransformgrid.c b/app/display/gimptooltransformgrid.c
index 01236a9..ba80be6 100644
--- a/app/display/gimptooltransformgrid.c
+++ b/app/display/gimptooltransformgrid.c
@@ -1066,21 +1066,29 @@ gimp_tool_transform_grid_changed (GimpToolWidget *widget)
factor = 1.5;
h = private->handles[GIMP_TRANSFORM_HANDLE_NW + i];
- gimp_canvas_handle_set_position (h, o[i].x, o[i].y);
- gimp_canvas_handle_set_size (h, handle_w * factor, handle_h * factor);
- gimp_canvas_handle_set_angles (h, angle[i + 4], 0.0);
gimp_canvas_item_set_visible (h, private->use_corner_handles);
+ if (private->use_corner_handles)
+ {
+ gimp_canvas_handle_set_position (h, o[i].x, o[i].y);
+ gimp_canvas_handle_set_size (h, handle_w * factor, handle_h * factor);
+ gimp_canvas_handle_set_angles (h, angle[i + 4], 0.0);
+ }
+
/* the perspective handles */
factor = 1.0;
if (private->use_corner_handles)
factor = 0.8;
h = private->handles[GIMP_TRANSFORM_HANDLE_NW_P + i];
- gimp_canvas_handle_set_position (h, o[i].x, o[i].y);
- gimp_canvas_handle_set_size (h, handle_w * factor, handle_h * factor);
- gimp_canvas_handle_set_angles (h, angle[i + 4], 0.0);
gimp_canvas_item_set_visible (h, private->use_perspective_handles);
+
+ if (private->use_perspective_handles)
+ {
+ gimp_canvas_handle_set_position (h, o[i].x, o[i].y);
+ gimp_canvas_handle_set_size (h, handle_w * factor, handle_h * factor);
+ gimp_canvas_handle_set_angles (h, angle[i + 4], 0.0);
+ }
}
/* draw the side handles */
@@ -1094,10 +1102,14 @@ gimp_tool_transform_grid_changed (GimpToolWidget *widget)
GimpCanvasItem *h;
h = private->handles[GIMP_TRANSFORM_HANDLE_N + i];
- gimp_canvas_handle_set_position (h, t[i].x, t[i].y);
- gimp_canvas_handle_set_size (h, handle_w, handle_h);
- gimp_canvas_handle_set_angles (h, angle[i], 0.0);
gimp_canvas_item_set_visible (h, private->use_side_handles);
+
+ if (private->use_side_handles)
+ {
+ gimp_canvas_handle_set_position (h, t[i].x, t[i].y);
+ gimp_canvas_handle_set_size (h, handle_w, handle_h);
+ gimp_canvas_handle_set_angles (h, angle[i], 0.0);
+ }
}
/* draw the shear handles */
@@ -1115,10 +1127,14 @@ gimp_tool_transform_grid_changed (GimpToolWidget *widget)
GimpCanvasItem *h;
h = private->handles[GIMP_TRANSFORM_HANDLE_N_S + i];
- gimp_canvas_handle_set_position (h, t[i].x, t[i].y);
- gimp_canvas_handle_set_size (h, handle_w, handle_h);
- gimp_canvas_handle_set_angles (h, angle[i], 0.0);
gimp_canvas_item_set_visible (h, private->use_shear_handles);
+
+ if (private->use_shear_handles)
+ {
+ gimp_canvas_handle_set_position (h, t[i].x, t[i].y);
+ gimp_canvas_handle_set_size (h, handle_w, handle_h);
+ gimp_canvas_handle_set_angles (h, angle[i], 0.0);
+ }
}
d = MIN (handle_w, handle_h);
@@ -1128,28 +1144,34 @@ gimp_tool_transform_grid_changed (GimpToolWidget *widget)
gimp_canvas_item_set_visible (private->handles[GIMP_TRANSFORM_HANDLE_PIVOT],
private->use_pivot_handle);
- gimp_canvas_handle_set_position (private->pivot_items[0],
- private->tpx, private->tpy);
- gimp_canvas_handle_set_size (private->pivot_items[0], d, d);
+ if (private->use_pivot_handle)
+ {
+ gimp_canvas_handle_set_position (private->pivot_items[0],
+ private->tpx, private->tpy);
+ gimp_canvas_handle_set_size (private->pivot_items[0], d, d);
- gimp_canvas_handle_set_position (private->pivot_items[1],
- private->tpx, private->tpy);
- gimp_canvas_handle_set_size (private->pivot_items[1], d, d);
+ gimp_canvas_handle_set_position (private->pivot_items[1],
+ private->tpx, private->tpy);
+ gimp_canvas_handle_set_size (private->pivot_items[1], d, d);
+ }
d = MIN (handle_w, handle_h);
gimp_canvas_item_set_visible (private->handles[GIMP_TRANSFORM_HANDLE_CENTER],
private->use_center_handle);
- gimp_canvas_handle_set_position (private->center_items[0],
- private->tcx, private->tcy);
- gimp_canvas_handle_set_size (private->center_items[0], d, d);
- gimp_canvas_handle_set_angles (private->center_items[0], angle[8], 0.0);
-
- gimp_canvas_handle_set_position (private->center_items[1],
- private->tcx, private->tcy);
- gimp_canvas_handle_set_size (private->center_items[1], d, d);
- gimp_canvas_handle_set_angles (private->center_items[1], angle[8], 0.0);
+ if (private->use_center_handle)
+ {
+ gimp_canvas_handle_set_position (private->center_items[0],
+ private->tcx, private->tcy);
+ gimp_canvas_handle_set_size (private->center_items[0], d, d);
+ gimp_canvas_handle_set_angles (private->center_items[0], angle[8], 0.0);
+
+ gimp_canvas_handle_set_position (private->center_items[1],
+ private->tcx, private->tcy);
+ gimp_canvas_handle_set_size (private->center_items[1], d, d);
+ gimp_canvas_handle_set_angles (private->center_items[1], angle[8], 0.0);
+ }
gimp_tool_transform_grid_update_hilight (grid);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]