[gimp/gimp-2-10] app: fix cursor precision of various tools



commit b1c977e5100b2f211c9fa78e327bccd6162bb9aa
Author: Ell <ell_se yahoo com>
Date:   Thu Jan 31 04:37:56 2019 -0500

    app: fix cursor precision of various tools
    
    Fix the cursor precision of the cage-transform, foreground-select,
    n-point deformation, and warp-transform tools.
    
    (cherry picked from commit 158705e4ef7be28bff83f51df48985b8f4ea6718)

 app/tools/gimpcagetool.c              |  2 ++
 app/tools/gimpforegroundselecttool.c  | 13 ++++++++++++-
 app/tools/gimpnpointdeformationtool.c |  2 ++
 app/tools/gimpwarptool.c              |  2 ++
 4 files changed, 18 insertions(+), 1 deletion(-)
---
diff --git a/app/tools/gimpcagetool.c b/app/tools/gimpcagetool.c
index 9ebb124663..854490a55c 100644
--- a/app/tools/gimpcagetool.c
+++ b/app/tools/gimpcagetool.c
@@ -196,6 +196,8 @@ gimp_cage_tool_init (GimpCageTool *self)
                                      GIMP_DIRTY_SELECTION       |
                                      GIMP_DIRTY_ACTIVE_DRAWABLE);
   gimp_tool_control_set_wants_click (tool->control, TRUE);
+  gimp_tool_control_set_precision   (tool->control,
+                                     GIMP_CURSOR_PRECISION_SUBPIXEL);
   gimp_tool_control_set_tool_cursor (tool->control,
                                      GIMP_TOOL_CURSOR_PERSPECTIVE);
 
diff --git a/app/tools/gimpforegroundselecttool.c b/app/tools/gimpforegroundselecttool.c
index 006fb00f32..1b9f5e1b0e 100644
--- a/app/tools/gimpforegroundselecttool.c
+++ b/app/tools/gimpforegroundselecttool.c
@@ -240,7 +240,7 @@ gimp_foreground_select_tool_init (GimpForegroundSelectTool *fg_select)
                                      GIMP_DIRTY_IMAGE_SIZE |
                                      GIMP_DIRTY_ACTIVE_DRAWABLE);
   gimp_tool_control_set_precision   (tool->control,
-                                     GIMP_CURSOR_PRECISION_PIXEL_CENTER);
+                                     GIMP_CURSOR_PRECISION_SUBPIXEL);
   gimp_tool_control_set_tool_cursor (tool->control,
                                      GIMP_TOOL_CURSOR_FREE_SELECT);
 
@@ -974,6 +974,13 @@ gimp_foreground_select_tool_halt (GimpForegroundSelectTool *fg_select)
 
   gimp_tool_control_set_toggled (tool->control, FALSE);
 
+  /*  set precision to SUBPIXEL, because it may have been changed to
+   *  PIXEL_CENTER if the tool has switched to MATTING_STATE_PAINT_TRIMAP,
+   *  in gimp_foreground_select_tool_set_trimap().
+   */
+  gimp_tool_control_set_precision (tool->control,
+                                   GIMP_CURSOR_PRECISION_SUBPIXEL);
+
   fg_select->state = MATTING_STATE_FREE_SELECT;
 
   /*  update the undo actions / menu items  */
@@ -1041,6 +1048,10 @@ gimp_foreground_select_tool_set_trimap (GimpForegroundSelectTool *fg_select)
   /* disable double click in paint trimap state */
   gimp_tool_control_set_wants_double_click (tool->control, FALSE);
 
+  /* set precision to PIXEL_CENTER in paint trimap state */
+  gimp_tool_control_set_precision (tool->control,
+                                   GIMP_CURSOR_PRECISION_PIXEL_CENTER);
+
   fg_select->state = MATTING_STATE_PAINT_TRIMAP;
 
   gimp_foreground_select_tool_update_gui (fg_select);
diff --git a/app/tools/gimpnpointdeformationtool.c b/app/tools/gimpnpointdeformationtool.c
index c95941ab06..0b653dee34 100644
--- a/app/tools/gimpnpointdeformationtool.c
+++ b/app/tools/gimpnpointdeformationtool.c
@@ -188,6 +188,8 @@ gimp_n_point_deformation_tool_init (GimpNPointDeformationTool *npd_tool)
 {
   GimpTool *tool = GIMP_TOOL (npd_tool);
 
+  gimp_tool_control_set_precision            (tool->control,
+                                              GIMP_CURSOR_PRECISION_SUBPIXEL);
   gimp_tool_control_set_tool_cursor          (tool->control,
                                               GIMP_TOOL_CURSOR_PERSPECTIVE);
   gimp_tool_control_set_preserve             (tool->control, FALSE);
diff --git a/app/tools/gimpwarptool.c b/app/tools/gimpwarptool.c
index 8d6d970653..4218467012 100644
--- a/app/tools/gimpwarptool.c
+++ b/app/tools/gimpwarptool.c
@@ -201,6 +201,8 @@ gimp_warp_tool_init (GimpWarpTool *self)
   gimp_tool_control_set_dirty_action    (tool->control,
                                          GIMP_TOOL_ACTION_COMMIT);
   gimp_tool_control_set_wants_click     (tool->control, TRUE);
+  gimp_tool_control_set_precision       (tool->control,
+                                         GIMP_CURSOR_PRECISION_SUBPIXEL);
   gimp_tool_control_set_tool_cursor     (tool->control,
                                          GIMP_TOOL_CURSOR_WARP);
   gimp_tool_control_set_action_size     (tool->control,


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