[gimp] Bug 770911 - Move tool should display relative coordinates in statusbar...
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 770911 - Move tool should display relative coordinates in statusbar...
- Date: Sat, 1 Oct 2016 20:47:45 +0000 (UTC)
commit 713e4071b2e92b14d330342e76aab97f9c20424c
Author: Michael Natterer <mitch gimp org>
Date: Sat Oct 1 22:45:51 2016 +0200
Bug 770911 - Move tool should display relative coordinates in statusbar...
...when moving guides
Show relative coordinates when moving guides and sample points, the
cursor display in the statusbar already shows absolute coordinates.
app/tools/gimpguidetool.c | 40 +++++++++++++++++++-----
app/tools/gimpguidetool.h | 4 +--
app/tools/gimpsamplepointtool.c | 62 ++++++++++++++++++++++++++++----------
app/tools/gimpsamplepointtool.h | 2 +
4 files changed, 79 insertions(+), 29 deletions(-)
---
diff --git a/app/tools/gimpguidetool.c b/app/tools/gimpguidetool.c
index a293e6c..215558a 100644
--- a/app/tools/gimpguidetool.c
+++ b/app/tools/gimpguidetool.c
@@ -123,6 +123,7 @@ gimp_guide_tool_button_release (GimpTool *tool,
if (release_type == GIMP_BUTTON_RELEASE_CANCEL)
{
+ /* custom guides are moved live */
if (guide_tool->guide_custom)
gimp_image_move_guide (image, guide_tool->guide,
guide_tool->guide_old_position, TRUE);
@@ -272,11 +273,19 @@ gimp_guide_tool_motion (GimpTool *tool,
guide_tool->guide ?
_("Remove Guide") : _("Cancel Guide"));
}
+ else if (guide_tool->guide)
+ {
+ gimp_tool_push_status_length (tool, display,
+ _("Move Guide: "),
+ SWAP_ORIENT (guide_tool->guide_orientation),
+ guide_tool->guide_position -
+ guide_tool->guide_old_position,
+ NULL);
+ }
else
{
gimp_tool_push_status_length (tool, display,
- guide_tool->guide ?
- _("Move Guide: ") : _("Add Guide: "),
+ _("Add Guide: "),
SWAP_ORIENT (guide_tool->guide_orientation),
guide_tool->guide_position,
NULL);
@@ -290,6 +299,7 @@ gimp_guide_tool_draw (GimpDrawTool *draw_tool)
if (guide_tool->guide_position != GIMP_GUIDE_POSITION_UNDEFINED)
{
+ /* custom guides are moved live */
if (! guide_tool->guide_custom)
gimp_draw_tool_add_guide (draw_tool,
guide_tool->guide_orientation,
@@ -318,18 +328,18 @@ gimp_guide_tool_start (GimpTool *parent_tool,
if (guide)
{
guide_tool->guide = guide;
+ guide_tool->guide_old_position = gimp_guide_get_position (guide);
guide_tool->guide_position = gimp_guide_get_position (guide);
guide_tool->guide_orientation = gimp_guide_get_orientation (guide);
guide_tool->guide_custom = gimp_guide_is_custom (guide);
- guide_tool->guide_old_position = gimp_guide_get_position (guide);
}
else
{
guide_tool->guide = NULL;
+ guide_tool->guide_old_position = 0;
guide_tool->guide_position = GIMP_GUIDE_POSITION_UNDEFINED;
guide_tool->guide_orientation = orientation;
guide_tool->guide_custom = FALSE;
- guide_tool->guide_old_position = GIMP_GUIDE_POSITION_UNDEFINED;
}
gimp_tool_set_cursor (tool, display,
@@ -344,11 +354,23 @@ gimp_guide_tool_start (GimpTool *parent_tool,
gimp_draw_tool_start (GIMP_DRAW_TOOL (guide_tool), display);
- gimp_tool_push_status_length (tool, display,
- _("Add Guide: "),
- SWAP_ORIENT (guide_tool->guide_orientation),
- guide_tool->guide_position,
- NULL);
+ if (guide_tool->guide)
+ {
+ gimp_tool_push_status_length (tool, display,
+ _("Move Guide: "),
+ SWAP_ORIENT (guide_tool->guide_orientation),
+ guide_tool->guide_position -
+ guide_tool->guide_old_position,
+ NULL);
+ }
+ else
+ {
+ gimp_tool_push_status_length (tool, display,
+ _("Add Guide: "),
+ SWAP_ORIENT (guide_tool->guide_orientation),
+ guide_tool->guide_position,
+ NULL);
+ }
}
diff --git a/app/tools/gimpguidetool.h b/app/tools/gimpguidetool.h
index d9b2a4f..ae06e86 100644
--- a/app/tools/gimpguidetool.h
+++ b/app/tools/gimpguidetool.h
@@ -38,12 +38,10 @@ struct _GimpGuideTool
GimpDrawTool parent_instance;
GimpGuide *guide;
+ gint guide_old_position;
gint guide_position;
GimpOrientationType guide_orientation;
-
- /* for live-moving custom guides */
gboolean guide_custom;
- gint guide_old_position;
};
struct _GimpGuideToolClass
diff --git a/app/tools/gimpsamplepointtool.c b/app/tools/gimpsamplepointtool.c
index d400650..1175c43 100644
--- a/app/tools/gimpsamplepointtool.c
+++ b/app/tools/gimpsamplepointtool.c
@@ -240,16 +240,26 @@ gimp_sample_point_tool_motion (GimpTool *tool,
_("Remove Sample Point") :
_("Cancel Sample Point"));
}
+ else if (sp_tool->sample_point)
+ {
+ gimp_tool_push_status_coords (tool, display,
+ gimp_tool_control_get_precision (tool->control),
+ _("Move Sample Point: "),
+ sp_tool->sample_point_x -
+ sp_tool->sample_point_old_x,
+ ", ",
+ sp_tool->sample_point_y -
+ sp_tool->sample_point_old_y,
+ NULL);
+ }
else
{
gimp_tool_push_status_coords (tool, display,
gimp_tool_control_get_precision (tool->control),
- sp_tool->sample_point ?
- _("Move Sample Point: ") :
_("Add Sample Point: "),
sp_tool->sample_point_x,
", ",
- sp_tool->sample_point_x,
+ sp_tool->sample_point_y,
NULL);
}
}
@@ -289,14 +299,19 @@ gimp_sample_point_tool_start (GimpTool *parent_tool,
sp_tool->sample_point = sample_point;
gimp_sample_point_get_position (sample_point,
- &sp_tool->sample_point_x,
- &sp_tool->sample_point_y);
+ &sp_tool->sample_point_old_x,
+ &sp_tool->sample_point_old_y);
+
+ sp_tool->sample_point_x = sp_tool->sample_point_old_x;
+ sp_tool->sample_point_y = sp_tool->sample_point_old_y;
}
else
{
- sp_tool->sample_point = NULL;
- sp_tool->sample_point_x = GIMP_SAMPLE_POINT_POSITION_UNDEFINED;
- sp_tool->sample_point_y = GIMP_SAMPLE_POINT_POSITION_UNDEFINED;
+ sp_tool->sample_point = NULL;
+ sp_tool->sample_point_old_x = 0;
+ sp_tool->sample_point_old_y = 0;
+ sp_tool->sample_point_x = GIMP_SAMPLE_POINT_POSITION_UNDEFINED;
+ sp_tool->sample_point_y = GIMP_SAMPLE_POINT_POSITION_UNDEFINED;
}
gimp_tool_set_cursor (tool, display,
@@ -311,15 +326,28 @@ gimp_sample_point_tool_start (GimpTool *parent_tool,
gimp_draw_tool_start (GIMP_DRAW_TOOL (sp_tool), display);
- gimp_tool_push_status_coords (tool, display,
- gimp_tool_control_get_precision (tool->control),
- sample_point ?
- _("Move Sample Point: ") :
- _("Add Sample Point: "),
- sp_tool->sample_point_x,
- ", ",
- sp_tool->sample_point_y,
- NULL);
+ if (sp_tool->sample_point)
+ {
+ gimp_tool_push_status_coords (tool, display,
+ gimp_tool_control_get_precision (tool->control),
+ _("Move Sample Point: "),
+ sp_tool->sample_point_x -
+ sp_tool->sample_point_old_x,
+ ", ",
+ sp_tool->sample_point_y -
+ sp_tool->sample_point_old_y,
+ NULL);
+ }
+ else
+ {
+ gimp_tool_push_status_coords (tool, display,
+ gimp_tool_control_get_precision (tool->control),
+ _("Add Sample Point: "),
+ sp_tool->sample_point_x,
+ ", ",
+ sp_tool->sample_point_y,
+ NULL);
+ }
}
diff --git a/app/tools/gimpsamplepointtool.h b/app/tools/gimpsamplepointtool.h
index 4e3a3d9..5fb361b 100644
--- a/app/tools/gimpsamplepointtool.h
+++ b/app/tools/gimpsamplepointtool.h
@@ -38,6 +38,8 @@ struct _GimpSamplePointTool
GimpDrawTool parent_instance;
GimpSamplePoint *sample_point;
+ gint sample_point_old_x;
+ gint sample_point_old_y;
gint sample_point_x;
gint sample_point_y;
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]