From 33167e4c37e089394f5c47570406322e844acb71 Mon Sep 17 00:00:00 2001 From: MEST 1999 Sven Neumann Date: Mon, 26 Jul 1999 18:13:10 +0000 Subject: [PATCH] Restrict to horizontal/vertical blend when modifiers are pressed. Mon Jul 26 20:11:01 MEST 1999 Sven Neumann * app/blend.c: Restrict to horizontal/vertical blend when modifiers are pressed. --Sven --- ChangeLog | 5 +++++ app/blend.c | 21 +++++++++++++++++++++ app/core/gimpdrawable-blend.c | 21 +++++++++++++++++++++ app/tools/blend.c | 21 +++++++++++++++++++++ app/tools/gimpblendtool.c | 21 +++++++++++++++++++++ 5 files changed, 89 insertions(+) diff --git a/ChangeLog b/ChangeLog index b35cb859b6..0975900e65 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jul 26 20:11:01 MEST 1999 Sven Neumann + + * app/blend.c: Restrict to horizontal/vertical blend when modifiers + are pressed. + 1999-07-26 Tuomas Kuosmanen * pixmaps/topath.xpm diff --git a/app/blend.c b/app/blend.c index ce8fde11ff..63577bbf35 100644 --- a/app/blend.c +++ b/app/blend.c @@ -633,6 +633,27 @@ blend_motion (Tool *tool, gdisplay_untransform_coords (gdisp, mevent->x, mevent->y, &blend_tool->endx, &blend_tool->endy, FALSE, 1); + /* restrict to horizontal/vertical blend, if modifiers are pressed */ + if (mevent->state & GDK_MOD1_MASK) + { + if (mevent->state & GDK_CONTROL_MASK) + { + double dx, dy; + + dx = blend_tool->endx - blend_tool->startx; + dy = blend_tool->endy - blend_tool->starty; + + blend_tool->endx = blend_tool->endx + + ((dx < 0) && (dy > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + blend_tool->endy = blend_tool->endy + + ((dy < 0) && (dx > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + } + else + blend_tool->endx = blend_tool->startx; + } + else if (mevent->state & GDK_CONTROL_MASK) + blend_tool->endy = blend_tool->starty; + gtk_statusbar_pop (GTK_STATUSBAR (gdisp->statusbar), blend_tool->context_id); if (gdisp->dot_for_dot) { diff --git a/app/core/gimpdrawable-blend.c b/app/core/gimpdrawable-blend.c index ce8fde11ff..63577bbf35 100644 --- a/app/core/gimpdrawable-blend.c +++ b/app/core/gimpdrawable-blend.c @@ -633,6 +633,27 @@ blend_motion (Tool *tool, gdisplay_untransform_coords (gdisp, mevent->x, mevent->y, &blend_tool->endx, &blend_tool->endy, FALSE, 1); + /* restrict to horizontal/vertical blend, if modifiers are pressed */ + if (mevent->state & GDK_MOD1_MASK) + { + if (mevent->state & GDK_CONTROL_MASK) + { + double dx, dy; + + dx = blend_tool->endx - blend_tool->startx; + dy = blend_tool->endy - blend_tool->starty; + + blend_tool->endx = blend_tool->endx + + ((dx < 0) && (dy > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + blend_tool->endy = blend_tool->endy + + ((dy < 0) && (dx > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + } + else + blend_tool->endx = blend_tool->startx; + } + else if (mevent->state & GDK_CONTROL_MASK) + blend_tool->endy = blend_tool->starty; + gtk_statusbar_pop (GTK_STATUSBAR (gdisp->statusbar), blend_tool->context_id); if (gdisp->dot_for_dot) { diff --git a/app/tools/blend.c b/app/tools/blend.c index ce8fde11ff..63577bbf35 100644 --- a/app/tools/blend.c +++ b/app/tools/blend.c @@ -633,6 +633,27 @@ blend_motion (Tool *tool, gdisplay_untransform_coords (gdisp, mevent->x, mevent->y, &blend_tool->endx, &blend_tool->endy, FALSE, 1); + /* restrict to horizontal/vertical blend, if modifiers are pressed */ + if (mevent->state & GDK_MOD1_MASK) + { + if (mevent->state & GDK_CONTROL_MASK) + { + double dx, dy; + + dx = blend_tool->endx - blend_tool->startx; + dy = blend_tool->endy - blend_tool->starty; + + blend_tool->endx = blend_tool->endx + + ((dx < 0) && (dy > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + blend_tool->endy = blend_tool->endy + + ((dy < 0) && (dx > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + } + else + blend_tool->endx = blend_tool->startx; + } + else if (mevent->state & GDK_CONTROL_MASK) + blend_tool->endy = blend_tool->starty; + gtk_statusbar_pop (GTK_STATUSBAR (gdisp->statusbar), blend_tool->context_id); if (gdisp->dot_for_dot) { diff --git a/app/tools/gimpblendtool.c b/app/tools/gimpblendtool.c index ce8fde11ff..63577bbf35 100644 --- a/app/tools/gimpblendtool.c +++ b/app/tools/gimpblendtool.c @@ -633,6 +633,27 @@ blend_motion (Tool *tool, gdisplay_untransform_coords (gdisp, mevent->x, mevent->y, &blend_tool->endx, &blend_tool->endy, FALSE, 1); + /* restrict to horizontal/vertical blend, if modifiers are pressed */ + if (mevent->state & GDK_MOD1_MASK) + { + if (mevent->state & GDK_CONTROL_MASK) + { + double dx, dy; + + dx = blend_tool->endx - blend_tool->startx; + dy = blend_tool->endy - blend_tool->starty; + + blend_tool->endx = blend_tool->endx + + ((dx < 0) && (dy > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + blend_tool->endy = blend_tool->endy + + ((dy < 0) && (dx > 0) ? - MAX (dx, dy) : MAX (dx, dy)); + } + else + blend_tool->endx = blend_tool->startx; + } + else if (mevent->state & GDK_CONTROL_MASK) + blend_tool->endy = blend_tool->starty; + gtk_statusbar_pop (GTK_STATUSBAR (gdisp->statusbar), blend_tool->context_id); if (gdisp->dot_for_dot) {