Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimprectangleselecttool.c * app/tools/gimprectangletool.c: fix three issues identified by jimmac: (1) when shift or ctrl are pressed, should start a new rect regardless of pointer loc; (2) zoom was incorrectly affecting width of sensitive areas; (3) must emit "rectangle-changed" after keyboard-driven rectangle movement.
This commit is contained in:
@ -1,3 +1,12 @@
|
||||
2006-06-11 Bill Skaggs <weskaggs@primate.ucdavis.edu>
|
||||
|
||||
* app/tools/gimprectangleselecttool.c
|
||||
* app/tools/gimprectangletool.c: fix three issues identified by
|
||||
jimmac: (1) when shift or ctrl are pressed, should start a new
|
||||
rect regardless of pointer loc; (2) zoom was incorrectly affecting
|
||||
width of sensitive areas; (3) must emit "rectangle-changed" after
|
||||
keyboard-driven rectangle movement.
|
||||
|
||||
2006-06-12 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* plug-ins/FractalExplorer/Dialogs.c
|
||||
|
@ -284,6 +284,11 @@ gimp_rect_select_tool_button_press (GimpTool *tool,
|
||||
return;
|
||||
}
|
||||
|
||||
/* if the shift or ctrl keys are down, we don't want to adjust, we
|
||||
* want to create a new rectangle, regardless of pointer loc */
|
||||
if (state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK))
|
||||
g_object_set (tool, "function", RECT_CREATING, NULL);
|
||||
|
||||
gimp_rectangle_tool_button_press (tool, coords, time, state, display);
|
||||
|
||||
/* if we have an existing rectangle in the current display, then
|
||||
|
@ -1592,6 +1592,8 @@ gimp_rectangle_tool_key_press (GimpTool *tool,
|
||||
|
||||
gimp_draw_tool_resume (GIMP_DRAW_TOOL (tool));
|
||||
|
||||
g_signal_emit_by_name (rectangle, "rectangle-changed", NULL);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -1608,6 +1610,8 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
gint x1, y1, x2, y2;
|
||||
gboolean inside_x;
|
||||
gboolean inside_y;
|
||||
gdouble handle_w, handle_h;
|
||||
GimpDisplayShell *shell;
|
||||
|
||||
g_return_if_fail (GIMP_IS_RECTANGLE_TOOL (tool));
|
||||
|
||||
@ -1616,6 +1620,8 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
if (tool->display != display)
|
||||
return;
|
||||
|
||||
shell = GIMP_DISPLAY_SHELL (tool->display->shell);
|
||||
|
||||
g_object_get (rectangle,
|
||||
"x1", &x1,
|
||||
"y1", &y1,
|
||||
@ -1623,6 +1629,9 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
"y2", &y2,
|
||||
NULL);
|
||||
|
||||
handle_w = private->dcw / SCALEFACTOR_X (shell);
|
||||
handle_h = private->dch / SCALEFACTOR_Y (shell);
|
||||
|
||||
inside_x = coords->x > x1 && coords->x < x2;
|
||||
inside_y = coords->y > y1 && coords->y < y2;
|
||||
|
||||
@ -1630,7 +1639,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
coords->x, coords->y,
|
||||
GIMP_HANDLE_SQUARE,
|
||||
x1, y1,
|
||||
private->dcw, private->dch,
|
||||
handle_w, handle_h,
|
||||
GTK_ANCHOR_NORTH_WEST,
|
||||
FALSE))
|
||||
{
|
||||
@ -1645,7 +1654,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
coords->x, coords->y,
|
||||
GIMP_HANDLE_SQUARE,
|
||||
x2, y2,
|
||||
private->dcw, private->dch,
|
||||
handle_w, handle_h,
|
||||
GTK_ANCHOR_SOUTH_EAST,
|
||||
FALSE))
|
||||
{
|
||||
@ -1660,7 +1669,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
coords->x, coords->y,
|
||||
GIMP_HANDLE_SQUARE,
|
||||
x2, y1,
|
||||
private->dcw, private->dch,
|
||||
handle_w, handle_h,
|
||||
GTK_ANCHOR_NORTH_EAST,
|
||||
FALSE))
|
||||
{
|
||||
@ -1675,7 +1684,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
coords->x, coords->y,
|
||||
GIMP_HANDLE_SQUARE,
|
||||
x1, y2,
|
||||
private->dcw, private->dch,
|
||||
handle_w, handle_h,
|
||||
GTK_ANCHOR_SOUTH_WEST,
|
||||
FALSE))
|
||||
{
|
||||
@ -1686,7 +1695,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
y2 - coords->y,
|
||||
0, 0);
|
||||
}
|
||||
else if ( (fabs (coords->x - x1) < private->dcw) && inside_y)
|
||||
else if ( (fabs (coords->x - x1) < handle_w) && inside_y)
|
||||
{
|
||||
g_object_set (rectangle, "function", RECT_RESIZING_LEFT, NULL);
|
||||
|
||||
@ -1694,7 +1703,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
x1 - coords->x, 0, 0, 0);
|
||||
|
||||
}
|
||||
else if ( (fabs (coords->x - x2) < private->dcw) && inside_y)
|
||||
else if ( (fabs (coords->x - x2) < handle_w) && inside_y)
|
||||
{
|
||||
g_object_set (rectangle, "function", RECT_RESIZING_RIGHT, NULL);
|
||||
|
||||
@ -1702,7 +1711,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
x2 - coords->x, 0, 0, 0);
|
||||
|
||||
}
|
||||
else if ( (fabs (coords->y - y1) < private->dch) && inside_x)
|
||||
else if ( (fabs (coords->y - y1) < handle_h) && inside_x)
|
||||
{
|
||||
g_object_set (rectangle, "function", RECT_RESIZING_TOP, NULL);
|
||||
|
||||
@ -1710,7 +1719,7 @@ gimp_rectangle_tool_oper_update (GimpTool *tool,
|
||||
0, y1 - coords->y, 0, 0);
|
||||
|
||||
}
|
||||
else if ( (fabs (coords->y - y2) < private->dch) && inside_x)
|
||||
else if ( (fabs (coords->y - y2) < handle_h) && inside_x)
|
||||
{
|
||||
g_object_set (rectangle, "function", RECT_RESIZING_BOTTOM, NULL);
|
||||
|
||||
|
Reference in New Issue
Block a user