[gimp/metadata-browser] transformtool: kill rotate and move handle, instead rotate when outside frame (move already works in



commit 356261824c223d82e16dbf8830099bc3147f36de
Author: Mikael Magnusson <mikachu src gnome org>
Date:   Sun Aug 19 01:34:08 2012 +0200

    transformtool: kill rotate and move handle, instead rotate when outside frame (move already works inside)

 app/tools/gimptransformtool.h        |    1 -
 app/tools/gimpunifiedtransformtool.c |   44 ++++------------------------------
 2 files changed, 5 insertions(+), 40 deletions(-)
---
diff --git a/app/tools/gimptransformtool.h b/app/tools/gimptransformtool.h
index 2badb23..2f6950a 100644
--- a/app/tools/gimptransformtool.h
+++ b/app/tools/gimptransformtool.h
@@ -45,7 +45,6 @@ typedef enum
   TRANSFORM_HANDLE_E_S,
   TRANSFORM_HANDLE_W_S,
   TRANSFORM_HANDLE_ROTATION, /* rotation handle */
-  TRANSFORM_HANDLE_ROTATION2, /* extra rotation handle */
 
   TRANSFORM_HANDLE_NUM /* keep this last so *handles[] is the right size */
 } TransformAction;
diff --git a/app/tools/gimpunifiedtransformtool.c b/app/tools/gimpunifiedtransformtool.c
index 57d98a3..07487c8 100644
--- a/app/tools/gimpunifiedtransformtool.c
+++ b/app/tools/gimpunifiedtransformtool.c
@@ -197,7 +197,6 @@ get_friendly_operation_name (TransformAction op)
       case TRANSFORM_HANDLE_W_S:
         return "Shear";
       case TRANSFORM_HANDLE_ROTATION:
-      case TRANSFORM_HANDLE_ROTATION2:
         return "Rotate";
       default:
         g_assert_not_reached();
@@ -215,7 +214,7 @@ gimp_unified_transform_tool_pick_function (GimpTransformTool *tr_tool,
 
   for (i = TRANSFORM_HANDLE_NONE + 1; i < TRANSFORM_HANDLE_NUM; i++)
     {
-      if (gimp_canvas_item_hit (tr_tool->handles[i], coords->x, coords->y))
+      if (tr_tool->handles[i] && gimp_canvas_item_hit (tr_tool->handles[i], coords->x, coords->y))
         {
           ret = i;
           break;
@@ -231,7 +230,9 @@ gimp_unified_transform_tool_pick_function (GimpTransformTool *tr_tool,
                                    (gdouble[4]){ tr_tool->ty1, tr_tool->ty2,
                                                  tr_tool->ty4, tr_tool->ty3 },
                                    coords->x, coords->y))
-          ret = TRANSFORM_HANDLE_CENTER;
+        ret = TRANSFORM_HANDLE_CENTER;
+      else
+        ret = TRANSFORM_HANDLE_ROTATION;
     }
 
   gimp_tool_pop_status (tool, tool->display);
@@ -308,20 +309,6 @@ gimp_unified_transform_tool_draw_gui (GimpTransformTool *tr_tool,
                                  handle_w, handle_h,
                                  GIMP_HANDLE_ANCHOR_CENTER);
 
-  /*  draw the rotation handles  */
-  tx[0] = (tr_tool->tx1 * 3.0 + tr_tool->tx2 * 2.0) / 5.0;
-  ty[0] = (tr_tool->ty1 * 3.0 + tr_tool->ty2 * 2.0) / 5.0;
-  tx[1] = (tr_tool->tx3 * 2.0 + tr_tool->tx4 * 3.0) / 5.0;
-  ty[1] = (tr_tool->ty3 * 2.0 + tr_tool->ty4 * 3.0) / 5.0;
-
-  for (i = 0; i < 2; i++)
-    tr_tool->handles[TRANSFORM_HANDLE_ROTATION + i] =
-      gimp_draw_tool_add_handle (draw_tool,
-                                 GIMP_HANDLE_FILLED_CIRCLE,
-                                 tx[i], ty[i],
-                                 handle_w, handle_h,
-                                 GIMP_HANDLE_ANCHOR_CENTER);
-
   /*  draw the rotation center axis handle  */
   d = MIN (handle_w, handle_h) * 2.0; /* so you can grab it from under the center handle */
 
@@ -344,25 +331,6 @@ gimp_unified_transform_tool_draw_gui (GimpTransformTool *tr_tool,
 
   gimp_draw_tool_pop_group (draw_tool);
 
-  /*  draw the move handle  */
-  d = MIN (handle_w, handle_h);
-
-  stroke_group = gimp_draw_tool_add_stroke_group (draw_tool);
-
-  tr_tool->handles[TRANSFORM_HANDLE_CENTER] = GIMP_CANVAS_ITEM (stroke_group);
-
-  gimp_draw_tool_push_group (draw_tool, stroke_group);
-
-  gimp_draw_tool_add_handle (draw_tool,
-                             GIMP_HANDLE_CIRCLE,
-                             tr_tool->tcx, tr_tool->tcy,
-                             d, d,
-                             GIMP_HANDLE_ANCHOR_CENTER);
-  gimp_draw_tool_add_handle (draw_tool,
-                             GIMP_HANDLE_CROSS,
-                             tr_tool->tcx, tr_tool->tcy,
-                             d, d,
-                             GIMP_HANDLE_ANCHOR_CENTER);
   /* draw an item at 40,80 in screen coordinates */
   //gint x, y;
   //gimp_display_shell_untransform_xy (gimp_display_get_shell (tool->display),
@@ -372,8 +340,6 @@ gimp_unified_transform_tool_draw_gui (GimpTransformTool *tr_tool,
   //                           x, y,
   //                           5, 5,
   //                           GIMP_HANDLE_ANCHOR_CENTER);
-
-  gimp_draw_tool_pop_group (draw_tool);
 }
 
 static void
@@ -645,7 +611,7 @@ gimp_unified_transform_tool_motion (GimpTransformTool *transform_tool)
     }
 
   /* rotate */
-  if (function == TRANSFORM_HANDLE_ROTATION || function == TRANSFORM_HANDLE_ROTATION2)
+  if (function == TRANSFORM_HANDLE_ROTATION)
     {
       gdouble angle = calcangle (vectorsubtract (cur, pivot), vectorsubtract (mouse, pivot));
       if (options->constrain_rotate)



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